Blame ui/irqbalance-ui.h

Packit 9eaa09
Packit 9eaa09
#ifndef IRQBALANCE_UI_H
Packit 9eaa09
#define IRQBALANCE_UI_H
Packit 9eaa09
Packit 9eaa09
#include <stdio.h>
Packit 9eaa09
#include <stdint.h>
Packit 9eaa09
#include <glib.h>
Packit 9eaa09
#include <glib-unix.h>
Packit 9eaa09
Packit 9eaa09
#define SOCKET_PATH "irqbalance"
Packit 9eaa09
Packit 9eaa09
#define STATS "stats"
Packit 9eaa09
#define SET_SLEEP "settings sleep "
Packit 9eaa09
#define BAN_IRQS "settings ban irqs "
Packit 9eaa09
#define SETUP "setup"
Packit 9eaa09
Packit 9eaa09
/* IRQ CLASSES (same as irqbalance uses) */
Packit 9eaa09
#define IRQ_NODEF      -1
Packit 9eaa09
#define IRQ_OTHER       0
Packit 9eaa09
#define IRQ_LEGACY      1
Packit 9eaa09
#define IRQ_SCSI        2
Packit 9eaa09
#define IRQ_VIDEO       3
Packit 9eaa09
#define IRQ_ETH         4
Packit 9eaa09
#define IRQ_GBETH       5
Packit 9eaa09
#define IRQ_10GBETH     6
Packit 9eaa09
#define IRQ_VIRT_EVENT  7
Packit 9eaa09
Packit 9eaa09
Packit 9eaa09
/* Typedefs */
Packit 9eaa09
Packit 9eaa09
typedef enum node_type {
Packit 9eaa09
	OBJ_TYPE_CPU,
Packit 9eaa09
	OBJ_TYPE_CACHE,
Packit 9eaa09
	OBJ_TYPE_PACKAGE,
Packit 9eaa09
	OBJ_TYPE_NODE
Packit 9eaa09
} node_type_e;
Packit 9eaa09
Packit 9eaa09
typedef struct irq {
Packit 9eaa09
	int vector;
Packit 9eaa09
	uint64_t load;
Packit 9eaa09
	uint64_t diff;
Packit 9eaa09
	char is_banned;
Packit 9eaa09
	GList *assigned_to;
Packit 9eaa09
	int class;
Packit 9eaa09
} irq_t;
Packit 9eaa09
Packit 9eaa09
typedef struct cpu_node {
Packit 9eaa09
	node_type_e type;
Packit 9eaa09
	int number;
Packit 9eaa09
	uint64_t load;
Packit 9eaa09
	int is_powersave;
Packit 9eaa09
	struct cpu_node *parent;
Packit 9eaa09
	GList *children;
Packit 9eaa09
	GList *irqs;
Packit 9eaa09
	GList *cpu_list;
Packit 9eaa09
	char *cpu_mask;
Packit 9eaa09
} cpu_node_t;
Packit 9eaa09
Packit 9eaa09
typedef struct cpu_ban {
Packit 9eaa09
	int number;
Packit 9eaa09
	char is_banned;
Packit 9eaa09
} cpu_ban_t;
Packit 9eaa09
Packit 9eaa09
typedef struct setup {
Packit 9eaa09
	uint64_t sleep;
Packit 9eaa09
	GList *banned_irqs;
Packit 9eaa09
	GList *banned_cpus;
Packit 9eaa09
} setup_t;
Packit 9eaa09
Packit 9eaa09
/* Function prototypes */
Packit 9eaa09
Packit 9eaa09
struct msghdr * create_credentials_msg();
Packit 9eaa09
int init_connection();
Packit 9eaa09
void send_settings(char *data);
Packit 9eaa09
char * get_data(char *string);
Packit 9eaa09
void parse_setup(char *setup_data);
Packit 9eaa09
GList * concat_child_lists(cpu_node_t *node);
Packit 9eaa09
void copy_cpu_list_to_irq(irq_t *irq, void *data);
Packit 9eaa09
void assign_cpu_lists(cpu_node_t *node, void *data);
Packit 9eaa09
void assign_cpu_mask(cpu_node_t *node, void *data);
Packit 9eaa09
void parse_into_tree(char *data);
Packit 9eaa09
gboolean rescan_tree(gpointer data);
Packit 9eaa09
int main();
Packit 9eaa09
Packit 9eaa09
Packit 9eaa09
#endif /* IRQBALANCE_UI_H */