[go: up one dir, main page]

File: types.h

package info (click to toggle)
irqbalance 1.1.0-2.3
  • links: PTS
  • area: main
  • in suites: stretch
  • size: 3,476 kB
  • ctags: 617
  • sloc: sh: 11,446; ansic: 3,460; makefile: 38
file content (79 lines) | stat: -rw-r--r-- 1,318 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef _INCLUDE_GUARD_TYPES_H
#define _INCLUDE_GUARD_TYPES_H

#include <glib.h>

#include "cpumask.h"

#define	BALANCE_NONE		0
#define BALANCE_PACKAGE 	1
#define BALANCE_CACHE		2
#define BALANCE_CORE		3

/*
 * IRQ Classes
 */
#define IRQ_NODEF	-1
#define IRQ_OTHER       0
#define IRQ_LEGACY      1
#define IRQ_SCSI        2
#define IRQ_VIDEO       3
#define IRQ_ETH         4
#define IRQ_GBETH       5
#define IRQ_10GBETH     6
#define IRQ_VIRT_EVENT  7

/*
 * IRQ Types
 */
#define IRQ_TYPE_LEGACY     0
#define IRQ_TYPE_MSI        1
#define IRQ_TYPE_MSIX       2
#define IRQ_TYPE_VIRT_EVENT 3

/*
 * IRQ Internal tracking flags
 */
#define IRQ_FLAG_BANNED	1

enum obj_type_e {
	OBJ_TYPE_CPU,
	OBJ_TYPE_CACHE,
	OBJ_TYPE_PACKAGE,
	OBJ_TYPE_NODE
};

struct topo_obj {
	uint64_t load;
	uint64_t last_load;
	uint64_t irq_count;
	enum obj_type_e obj_type;
	int number;
	int powersave_mode;
	cpumask_t mask;
	GList *interrupts;
	struct topo_obj *parent;
	GList *children;
	GList **obj_type_list;
};

struct irq_info {
	int irq;
	int class;
	int type;
	int level;
	int flags;
	struct topo_obj *numa_node;
	cpumask_t cpumask;
	cpumask_t affinity_hint;
	int hint_policy;
	uint64_t irq_count;
	uint64_t last_irq_count;
	uint64_t load;
	int moved;
	struct topo_obj *assigned_obj;
	unsigned int warned;
	char *name;
};

#endif