diff options
author | Jonathan <hermanjl@hermanjl-Aspire-5553G.(none)> | 2012-03-05 14:22:27 -0500 |
---|---|---|
committer | Jonathan <hermanjl@hermanjl-Aspire-5553G.(none)> | 2012-03-05 14:22:27 -0500 |
commit | 8bcd73ddae5d74fb9b2b8aaedd3aa6a39ef3f75d (patch) | |
tree | 9688d2b57716c73b182722acab62101203a9105a /rt-graph.h | |
parent | f69435260fd14ef8d9ba13774da0fcba4b5d212c (diff) |
rt-graph: Litmus events and tasks loaded on startup
Diffstat (limited to 'rt-graph.h')
-rw-r--r-- | rt-graph.h | 31 |
1 files changed, 28 insertions, 3 deletions
@@ -3,9 +3,13 @@ | |||
3 | 3 | ||
4 | #include <gtk/gtk.h> | 4 | #include <gtk/gtk.h> |
5 | #include "trace-cmd.h" | 5 | #include "trace-cmd.h" |
6 | #include "task-list.h" | ||
6 | 7 | ||
7 | struct rt_graph_info { | 8 | struct rt_graph_info { |
8 | 9 | ||
10 | /* List of all tasks */ | ||
11 | struct task_list *tasks[TASK_HASH_SIZE]; | ||
12 | |||
9 | /* Cache of event fields so that they don't need to be located | 13 | /* Cache of event fields so that they don't need to be located |
10 | * during each access. | 14 | * during each access. |
11 | */ | 15 | */ |
@@ -13,33 +17,54 @@ struct rt_graph_info { | |||
13 | struct format_field *param_pid_field; | 17 | struct format_field *param_pid_field; |
14 | struct format_field *param_wcet_field; | 18 | struct format_field *param_wcet_field; |
15 | struct format_field *param_period_field; | 19 | struct format_field *param_period_field; |
20 | |||
16 | gint task_release_id; | 21 | gint task_release_id; |
17 | struct format_field *release_pid_field; | 22 | struct format_field *release_pid_field; |
18 | struct format_field *release_job_field; | 23 | struct format_field *release_job_field; |
24 | struct format_field *release_release_field; | ||
19 | struct format_field *release_deadline_field; | 25 | struct format_field *release_deadline_field; |
26 | |||
20 | gint task_completion_id; | 27 | gint task_completion_id; |
21 | struct format_field *completion_pid_field; | 28 | struct format_field *completion_pid_field; |
22 | struct format_field *completion_job_field; | 29 | struct format_field *completion_job_field; |
30 | struct format_field *completion_when_field; | ||
31 | |||
23 | gint task_block_id; | 32 | gint task_block_id; |
24 | struct format_field *block_pid_field; | 33 | struct format_field *block_pid_field; |
34 | struct format_field *block_when_field; | ||
35 | |||
25 | gint task_resume_id; | 36 | gint task_resume_id; |
26 | struct format_field *resume_pid_field; | 37 | struct format_field *resume_pid_field; |
38 | struct format_field *resume_when_field; | ||
27 | 39 | ||
28 | }; | 40 | }; |
29 | 41 | ||
42 | /* Event parsers */ | ||
30 | int rt_graph_check_task_param(struct rt_graph_info *rtinfo, struct pevent *pevent, | 43 | int rt_graph_check_task_param(struct rt_graph_info *rtinfo, struct pevent *pevent, |
31 | struct record *record, gint *pid, | 44 | struct record *record, gint *pid, |
32 | unsigned long long *wcet, | 45 | unsigned long long *wcet, |
33 | unsigned long long *period); | 46 | unsigned long long *period); |
34 | int rt_graph_check_task_release(struct rt_graph_info *rtinfo, struct pevent *pevent, | 47 | int rt_graph_check_task_release(struct rt_graph_info *rtinfo, struct pevent *pevent, |
35 | struct record *record, gint *pid, gint *job, | 48 | struct record *record, gint *pid, gint *job, |
49 | unsigned long long *release, | ||
36 | unsigned long long *deadline); | 50 | unsigned long long *deadline); |
37 | int rt_graph_check_task_completion(struct rt_graph_info *rtinfo, struct pevent *pevent, | 51 | int rt_graph_check_task_completion(struct rt_graph_info *rtinfo, struct pevent *pevent, |
38 | struct record *record, gint *pid, gint *job); | 52 | struct record *record, gint *pid, gint *job, |
53 | unsigned long long *when); | ||
39 | int rt_graph_check_task_block(struct rt_graph_info *rtinfo, struct pevent *pevent, | 54 | int rt_graph_check_task_block(struct rt_graph_info *rtinfo, struct pevent *pevent, |
40 | struct record *record, gint *pid); | 55 | struct record *record, gint *pid, |
56 | unsigned long long *when); | ||
41 | int rt_graph_check_task_resume(struct rt_graph_info *rtinfo, struct pevent *pevent, | 57 | int rt_graph_check_task_resume(struct rt_graph_info *rtinfo, struct pevent *pevent, |
42 | struct record *record, gint *pid); | 58 | struct record *record, gint *pid, |
59 | unsigned long long *when); | ||
43 | void init_rt_event_cache(struct rt_graph_info *rtinfo); | 60 | void init_rt_event_cache(struct rt_graph_info *rtinfo); |
44 | 61 | ||
62 | /* Metadata */ | ||
63 | void rt_plot_task_plotted(struct rt_graph_info *rt_info, gint **plotted); | ||
64 | |||
65 | /* Callbacks for managing task list */ | ||
66 | void rt_plot_task_update_callback(gboolean accept, gint *selected, | ||
67 | gint *non_select, gpointer data); | ||
68 | void rt_plot_task_plotted(struct rt_graph_info *rtinfo, gint **plotted); | ||
69 | |||
45 | #endif | 70 | #endif |