Buffer must be large enough to keep a LONG value.
[AROS.git] / workbench / system / SysMon / sysmon_intern.h
blobdf2b9358fbc5c1a9c9731f600216e591c6c2adcd
1 /*
2 Copyright 2010-2017, The AROS Development Team. All rights reserved.
3 $Id$
4 */
6 #ifndef _SYSMON_INTERN_H
7 #define _SYSMON_INTERN_H
9 #include <proto/exec.h>
10 #include <proto/intuition.h>
11 #include <libraries/mui.h>
12 #define MEMORY_RAM 0
13 #define MEMORY_CHIP 1
14 #define MEMORY_FAST 2
15 #define MEMORY_VRAM 3
16 #define MEMORY_GART 4
18 #define SYSMON_TABCOUNT 3
20 struct SysMonData
22 struct Task *sm_Task;
23 Object * application;
24 Object * mainwindow;
25 Object * pages;
27 CONST_STRPTR tabs[SYSMON_TABCOUNT + 1];
29 struct Hook tasklistconstructhook;
30 struct Hook tasklistdestructhook;
31 struct Hook tasklistdisplayhook;
32 struct Hook taskselectedhook;
34 struct Hook pageactivehook;
36 Object * tasklist;
37 Object * tasklistinfo;
39 Object ** cpuusagegauges;
40 Object ** cpufreqlabels;
41 Object ** cpufreqvalues;
43 Object * memorysize[5];
44 Object * memoryfree[5];
46 struct List sm_TaskList;
47 struct Task *sm_TaskSelected;
49 ULONG sm_TasksWaiting;
50 ULONG sm_TasksReady;
51 ULONG sm_TaskTotalRuntime;
53 STRPTR tasklistinfobuf;
55 TEXT bufname[100];
56 TEXT buftype[20];
57 TEXT bufprio[20];
59 ULONG updateSpeed;
62 struct SysMonModule
64 BOOL (*Init)(struct SysMonData *);
65 VOID (*DeInit)(struct SysMonData *);
68 extern struct SysMonModule memorymodule;
69 extern struct SysMonModule videomodule;
70 extern struct SysMonModule processormodule;
71 extern struct SysMonModule timermodule;
72 extern struct SysMonModule tasksmodule;
74 VOID UpdateMemoryInformation(struct SysMonData * smdata);
75 VOID UpdateMemoryStaticInformation(struct SysMonData * smdata);
77 VOID UpdateVideoInformation(struct SysMonData * smdata);
78 VOID UpdateVideoStaticInformation(struct SysMonData * smdata);
80 ULONG GetProcessorCount();
81 VOID UpdateProcessorInformation(struct SysMonData * smdata);
82 VOID UpdateProcessorStaticInformation(struct SysMonData * smdata);
84 VOID UpdateTasksInformation(struct SysMonData * smdata);
85 VOID UpdateTasksStaticInformation(struct SysMonData * smdata);
87 struct TaskInfo;
89 AROS_UFP3(struct TaskInfo *, TasksListConstructFunction,
90 AROS_UFHA(struct Hook *, h, A0),
91 AROS_UFHA(APTR, pool, A2),
92 AROS_UFHA(struct Task *, curTask, A1));
94 AROS_UFP3(VOID, TasksListDestructFunction,
95 AROS_UFHA(struct Hook *, h, A0),
96 AROS_UFHA(APTR, pool, A2),
97 AROS_UFHA(struct TaskInfo *, obj, A1));
99 AROS_UFP3(VOID, TasksListDisplayFunction,
100 AROS_UFHA(struct Hook *, h, A0),
101 AROS_UFHA(STRPTR *, strings, A2),
102 AROS_UFHA(struct TaskInfo *, obj, A1));
104 AROS_UFP3(VOID, TaskSelectedFunction,
105 AROS_UFHA(struct Hook *, h, A0),
106 AROS_UFHA(Object *, object, A2),
107 AROS_UFHA(APTR, msg, A1));
109 ULONG GetSIG_TIMER();
110 VOID SignalMeAfter(ULONG msecs);
111 #endif