Blame types.h

Packit 9eaa09
#ifndef _INCLUDE_GUARD_TYPES_H
Packit 9eaa09
#define _INCLUDE_GUARD_TYPES_H
Packit 9eaa09
Packit 9eaa09
#include <glib.h>
Packit 9eaa09
Packit 9eaa09
#include "cpumask.h"
Packit 9eaa09
Packit 9eaa09
#define	BALANCE_NONE		0
Packit 9eaa09
#define BALANCE_PACKAGE 	1
Packit 9eaa09
#define BALANCE_CACHE		2
Packit 9eaa09
#define BALANCE_CORE		3
Packit 9eaa09
Packit 9eaa09
/*
Packit 9eaa09
 * IRQ Classes
Packit 9eaa09
 */
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
 * IRQ Types
Packit 9eaa09
 */
Packit 9eaa09
#define IRQ_TYPE_LEGACY     0
Packit 9eaa09
#define IRQ_TYPE_MSI        1
Packit 9eaa09
#define IRQ_TYPE_MSIX       2
Packit 9eaa09
#define IRQ_TYPE_VIRT_EVENT 3
Packit 9eaa09
Packit 9eaa09
/*
Packit 9eaa09
 * IRQ Internal tracking flags
Packit 9eaa09
 */
Packit 9eaa09
#define IRQ_FLAG_BANNED	1
Packit 9eaa09
Packit 9eaa09
enum obj_type_e {
Packit 9eaa09
	OBJ_TYPE_CPU,
Packit 9eaa09
	OBJ_TYPE_CACHE,
Packit 9eaa09
	OBJ_TYPE_PACKAGE,
Packit 9eaa09
	OBJ_TYPE_NODE
Packit 9eaa09
};
Packit 9eaa09
Packit 9eaa09
struct topo_obj {
Packit 9eaa09
	uint64_t load;
Packit 9eaa09
	uint64_t last_load;
Packit 9eaa09
	uint64_t irq_count;
Packit 9eaa09
	enum obj_type_e obj_type;
Packit 9eaa09
	int number;
Packit 9eaa09
	int powersave_mode;
Packit 9eaa09
	cpumask_t mask;
Packit 9eaa09
	GList *interrupts;
Packit 9eaa09
	struct topo_obj *parent;
Packit 9eaa09
	GList *children;
Packit 9eaa09
	GList *numa_nodes;
Packit 9eaa09
	GList **obj_type_list;
Packit 9eaa09
};
Packit 9eaa09
Packit 9eaa09
struct irq_info {
Packit 9eaa09
	int irq;
Packit 9eaa09
	int class;
Packit 9eaa09
	int type;
Packit 9eaa09
	int level;
Packit 9eaa09
	int flags;
Packit 9eaa09
	struct topo_obj *numa_node;
Packit 9eaa09
	cpumask_t cpumask;
Packit 9eaa09
	uint64_t irq_count;
Packit 9eaa09
	uint64_t last_irq_count;
Packit 9eaa09
	uint64_t load;
Packit 9eaa09
	int moved;
Packit 9eaa09
	struct topo_obj *assigned_obj;
Packit 9eaa09
	char *name;
Packit 9eaa09
};
Packit 9eaa09
Packit 9eaa09
#endif