52 lines
1.2 KiB
C
52 lines
1.2 KiB
C
#include "../source/uapi/monitor_user.h"
|
|
#include <stdio.h>
|
|
#include <unistd.h>
|
|
#include <string.h>
|
|
|
|
#define NUM_VARS 2049
|
|
|
|
int main()
|
|
{
|
|
int i = 0;
|
|
int temps[NUM_VARS] = {0};
|
|
watch_arg watch_args[NUM_VARS] = {0};
|
|
|
|
cancel_watch();
|
|
|
|
for (i = 0; i < NUM_VARS; i++)
|
|
{
|
|
temps[i] = 100;
|
|
|
|
watch_args[i] = (watch_arg){
|
|
.task_id = getpid(),
|
|
.ptr = &temps[i],
|
|
.name = "temp",
|
|
.length_byte = sizeof(int),
|
|
.threshold = 110 + i,
|
|
.unsigned_flag = 0,
|
|
.greater_flag = 1,
|
|
.time_ns = 2000 + (i / 33) * 5000, // on hyper-v, 1us will block all system. 2us just fine, maybe 1us is too short for hyper-v
|
|
};
|
|
char name[20];
|
|
snprintf(name, sizeof(name), "temp%d", i);
|
|
// 拷贝字符串
|
|
strncpy(watch_args[i].name, name, (MAX_NAME_LEN + 1));
|
|
|
|
start_watch(watch_args[i]);
|
|
}
|
|
|
|
while (temps[NUM_VARS - 1] < 205)
|
|
{
|
|
for (i = 0; i < NUM_VARS; i++)
|
|
{
|
|
temps[i]++;
|
|
}
|
|
printf("Value of variable %d: %d", i, temps[0]);
|
|
printf("\n");
|
|
sleep(1);
|
|
}
|
|
|
|
cancel_watch();
|
|
return 0;
|
|
}
|