38 #include <sys/ioctl.h>
40 #include <sys/types.h>
43 #define HB_FILE "/dev/rtm-t.%lu"
44 #define LOG_FILE "afhba.%d.log"
46 #define HB1 "/dev/rtm-t.%d.data/hb01"
48 #define HB_LEN 0x100000
66 static struct timespec ts0;
70 if (clock_gettime(CLOCK_MONOTONIC, &ts1) != 0){
71 perror(
"clock_gettime()");
76 tsd.tv_sec = ts1.tv_sec - ts0.tv_sec;
77 tsd.tv_nsec = ts1.tv_nsec - ts0.tv_nsec;
78 dt = tsd.tv_sec*
US + tsd.tv_nsec/
NSUS;
91 sprintf(fname,
HB_FILE, devnum);
92 fd = open(fname, O_RDWR);
98 host_buffer = mmap(0,
HB_LEN, PROT_READ|PROT_WRITE, MAP_SHARED, fd, 0);
99 if (host_buffer == (caddr_t)-1 ){
103 memset(host_buffer, 0,
HB_LEN);
118 for (cpu = 0; cpu < 32; ++cpu){
119 if ((1<<cpu) &cpu_mask){
120 CPU_SET(cpu, &cpu_set);
123 printf(
"setAffinity: %d,%d,%d,%d\n",
124 CPU_ISSET(0, &cpu_set), CPU_ISSET(1, &cpu_set),
125 CPU_ISSET(2, &cpu_set), CPU_ISSET(3, &cpu_set)
128 int rc = sched_setaffinity(0,
sizeof(cpu_set_t), &cpu_set);
130 perror(
"sched_set_affinity");
143 struct sched_param p = {};
148 int rc = sched_setscheduler(0, SCHED_FIFO, &p);
151 perror(
"failed to set RT priority");