summaryrefslogtreecommitdiffstats
path: root/Scheduling.h
diff options
context:
space:
mode:
Diffstat (limited to 'Scheduling.h')
-rw-r--r--Scheduling.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/Scheduling.h b/Scheduling.h
new file mode 100644
index 0000000..610503c
--- /dev/null
+++ b/Scheduling.h
@@ -0,0 +1,50 @@
+#ifndef HEADER_Scheduling
+#define HEADER_Scheduling
+/*
+htop - Scheduling.h
+(C) 2023 htop dev team
+Released under the GNU GPLv2+, see the COPYING file
+in the source distribution for its full text.
+*/
+
+#include <sched.h>
+#include <stdbool.h>
+
+#include "Object.h"
+#include "Panel.h"
+#include "Process.h"
+#include "Row.h"
+
+
+#if defined(HAVE_SCHED_SETSCHEDULER) && defined(HAVE_SCHED_GETSCHEDULER)
+#define SCHEDULER_SUPPORT
+
+typedef struct {
+ const char* name;
+ int id;
+ bool prioritySupport;
+} SchedulingPolicy;
+
+#define SCHEDULINGPANEL_INITSELECTEDPOLICY SCHED_OTHER
+#define SCHEDULINGPANEL_INITSELECTEDPRIORITY 50
+
+Panel* Scheduling_newPolicyPanel(int preSelectedPolicy);
+void Scheduling_togglePolicyPanelResetOnFork(Panel* schedPanel);
+
+Panel* Scheduling_newPriorityPanel(int policy, int preSelectedPriority);
+
+
+typedef struct {
+ int policy;
+ int priority;
+} SchedulingArg;
+
+bool Scheduling_rowSetPolicy(Row* proc, Arg arg);
+
+const char* Scheduling_formatPolicy(int policy);
+
+void Scheduling_readProcessPolicy(Process* proc);
+
+#endif
+
+#endif /* HEADER_Scheduling */