/* { dg-do compile } */ | |
/* { dg-options "-O2 -fno-strict-overflow -fsanitize=shift -Warray-bounds" } */ | |
enum psi_task_count { | |
NR_IOWAIT, | |
NR_PSI_TASK_COUNTS = 4, | |
}; | |
unsigned int tasks[NR_PSI_TASK_COUNTS]; | |
static void psi_group_change(unsigned int set) | |
{ | |
unsigned int t; | |
unsigned int state_mask = 0; | |
for (t = 0; set; set &= ~(1 << t), t++) | |
if (set & (1 << t)) | |
tasks[t]++; | |
} | |
void psi_task_switch(int sleep) | |
{ | |
int set = 0; | |
if (sleep) | |
set |= (1 << NR_IOWAIT); | |
psi_group_change(set); | |
} |