/* * sysmonioctl: * * Perform a control request. */ int sysmonioctl(dev_t dev, u_long cmd, void *data, int flag, struct lwp *l) { int error; switch (minor(dev)) { #if NSYSMON_ENVSYS > 0 case SYSMON_MINOR_ENVSYS: error = sysmonioctl_envsys(dev, cmd, data, flag, l); break; #endif #if NSYSMON_WDOG > 0 case SYSMON_MINOR_WDOG: error = sysmonioctl_wdog(dev, cmd, data, flag, l); break; #endif #if NSYSMON_POWER > 0 case SYSMON_MINOR_POWER: error = sysmonioctl_power(dev, cmd, data, flag, l); break; #endif default: error = ENODEV; } return (error); }
void* thr1(void* arg){ while(1) switch(__VERIFIER_nondet_int()){ case 0: sysmon_power_daemon_task(); break; case 1: sysmonopen_power(); break; case 2: sysmonclose_power(); break; case 3: sysmonread_power(); break; case 4: sysmonpoll_power(); break; case 5: filt_sysmon_power_rdetach(); break; case 6: filt_sysmon_power_read(); break; case 7: sysmonkqfilter_power(); break; case 8: sysmonioctl_power(); break; }}