typedef __u16 u16;
+/* values for the plot direction field */
+#define PLOT_DOWN 0
+#define PLOT_ACROSS 1
+
struct plot {
int fd;
char **legend_lines;
int legend_index;
int num_legend_lines;
+ int direction;
+
+ /*
+ * timeline is a vertical line through line graphs that
+ * is used by the movie mode to show where in the graph
+ * our current frame lives
+ */
+ int timeline;
};
struct graph_line_pair {
};
struct graph_line_data {
- /* total number of seconds in this graph */
- int seconds;
+ /* beginning of an interval displayed by this graph */
+ int min_seconds;
+
+ /* end of an interval displayed by this graph */
+ int max_seconds;
int stop_seconds;
};
struct graph_dot_data {
+ u64 min_offset;
u64 max_offset;
u64 max_bank;
u64 max_bank_offset;
/* in pixels, number of cols in our bitmap */
int cols;
- /* total number of seconds in this graph */
- int seconds;
+ /* beginning of an interval displayed by this graph */
+ int min_seconds;
+
+ /* end of an interval displayed by this graph */
+ int max_seconds;
int stop_seconds;
/* label for the legend */
int svg_io_graph(struct plot *plot, struct graph_dot_data *gdd, char *color);
int svg_line_graph(struct plot *plot, struct graph_line_data *gld, char *color, int thresh1, int thresh2);
-struct graph_line_data *alloc_line_data(int seconds, int stop_seconds);
+struct graph_line_data *alloc_line_data(int min_seconds, int max_seconds, int stop_seconds);
void free_line_data(struct graph_line_data *gld);
-struct graph_dot_data *alloc_dot_data(int seconds, u64 max_offset, int stop_seconds);
+struct graph_dot_data *alloc_dot_data(int min_seconds, int max_seconds, u64 min_offset, u64 max_offset, int stop_seconds);
void free_dot_data(struct graph_dot_data *gdd);
void set_gdd_bit(struct graph_dot_data *gdd, u64 offset, double bytes, double time);
void print_gdd(struct graph_dot_data *gdd);