|
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 */
|