#define HUD_PRIVATE_H
#include "pipe/p_context.h"
-#include "util/u_double_list.h"
+#include "util/list.h"
struct hud_graph {
/* initialized by common code */
char name[128];
void *query_data;
void (*query_new_value)(struct hud_graph *gr);
- void (*free_query_data)(void *ptr);
+ void (*free_query_data)(void *ptr); /**< do not use ordinary free() */
/* mutable variables */
unsigned num_vertices;
unsigned inner_height;
float yscale;
unsigned max_num_vertices;
+ unsigned last_line; /* index of the last describing line in the graph */
uint64_t max_value;
- boolean uses_byte_units;
+ uint64_t initial_max_value;
+ uint64_t ceiling;
+ unsigned dyn_ceil_last_ran;
+ boolean dyn_ceiling;
+ enum pipe_driver_query_type type;
uint64_t period; /* in microseconds */
struct list_head graph_list;
void hud_graph_add_value(struct hud_graph *gr, uint64_t value);
/* graphs/queries */
+struct hud_batch_query_context;
+
#define ALL_CPUS ~0 /* optionally set as cpu_index */
int hud_get_num_cpus(void);
void hud_fps_graph_install(struct hud_pane *pane);
void hud_cpu_graph_install(struct hud_pane *pane, unsigned cpu_index);
-void hud_pipe_query_install(struct hud_pane *pane, struct pipe_context *pipe,
+void hud_pipe_query_install(struct hud_batch_query_context **pbq,
+ struct hud_pane *pane, struct pipe_context *pipe,
const char *name, unsigned query_type,
- uint64_t max_value, boolean uses_byte_units);
-boolean hud_driver_query_install(struct hud_pane *pane,
+ unsigned result_index,
+ uint64_t max_value,
+ enum pipe_driver_query_type type,
+ enum pipe_driver_query_result_type result_type,
+ unsigned flags);
+boolean hud_driver_query_install(struct hud_batch_query_context **pbq,
+ struct hud_pane *pane,
struct pipe_context *pipe, const char *name);
+void hud_batch_query_update(struct hud_batch_query_context *bq);
+void hud_batch_query_cleanup(struct hud_batch_query_context **pbq);
+
+#if HAVE_GALLIUM_EXTRA_HUD
+int hud_get_num_nics(bool displayhelp);
+#define NIC_DIRECTION_RX 1
+#define NIC_DIRECTION_TX 2
+#define NIC_RSSI_DBM 3
+void hud_nic_graph_install(struct hud_pane *pane, const char *nic_index,
+ unsigned int mode);
+
+int hud_get_num_disks(bool displayhelp);
+#define DISKSTAT_RD 1
+#define DISKSTAT_WR 2
+void hud_diskstat_graph_install(struct hud_pane *pane, const char *dev_name,
+ unsigned int mode);
+#endif
+
+#if HAVE_LIBSENSORS
+int hud_get_num_sensors(bool displayhelp);
+#define SENSORS_TEMP_CURRENT 1
+#define SENSORS_TEMP_CRITICAL 2
+#define SENSORS_VOLTAGE_CURRENT 3
+#define SENSORS_CURRENT_CURRENT 4
+#define SENSORS_POWER_CURRENT 5
+void hud_sensors_temp_graph_install(struct hud_pane *pane, const char *dev_name,
+ unsigned int mode);
+#endif
#endif