Lines Matching full:limit

46 	SENSORSD_S_ABOVE,	/* status is above the higher limit */
47 SENSORSD_S_BELOW /* status is below the lower limit */
55 int64_t lower; /* lower limit */
56 int64_t upper; /* upper limit */
62 enum sensorsd_s_status ustatus; /* last user-limit status */
66 u_int8_t flags; /* sensorsd limit flags */
67 #define SENSORSD_L_USERLIMIT 0x0001 /* user specified limit */
220 struct limits_t *limit; in create_sdlim() local
245 if ((limit = calloc(1, sizeof(struct limits_t))) == in create_sdlim()
248 limit->type = type; in create_sdlim()
249 limit->numt = numt; in create_sdlim()
250 TAILQ_INSERT_TAIL(&sdlim->limits, limit, entries); in create_sdlim()
261 struct limits_t *limit; in destroy_sdlim() local
263 while ((limit = TAILQ_FIRST(&sdlim->limits)) != NULL) { in destroy_sdlim()
264 TAILQ_REMOVE(&sdlim->limits, limit, entries); in destroy_sdlim()
265 free(limit->command); in destroy_sdlim()
266 free(limit); in destroy_sdlim()
350 struct limits_t *limit; in check_sdlim() local
359 TAILQ_FOREACH(limit, &sdlim->limits, entries) { in check_sdlim()
360 if ((limit->flags & SENSORSD_L_ISTATUS) && in check_sdlim()
361 !(limit->flags & SENSORSD_L_USERLIMIT)) in check_sdlim()
364 mib[3] = limit->type; in check_sdlim()
365 mib[4] = limit->numt; in check_sdlim()
369 if (!(limit->flags & SENSORSD_L_ISTATUS)) { in check_sdlim()
372 if (limit->astatus != newastatus) { in check_sdlim()
373 if (limit->astatus2 != newastatus) { in check_sdlim()
374 limit->astatus2 = newastatus; in check_sdlim()
375 limit->acount = 0; in check_sdlim()
376 } else if (++limit->acount >= 3) { in check_sdlim()
377 limit->last_val = sensor.value; in check_sdlim()
378 limit->astatus2 = in check_sdlim()
379 limit->astatus = newastatus; in check_sdlim()
380 limit->astatus_changed = this_check; in check_sdlim()
385 if (limit->flags & SENSORSD_L_USERLIMIT) { in check_sdlim()
390 else if (sensor.value > limit->upper) in check_sdlim()
392 else if (sensor.value < limit->lower) in check_sdlim()
397 if (limit->ustatus != newustatus) { in check_sdlim()
398 if (limit->ustatus2 != newustatus) { in check_sdlim()
399 limit->ustatus2 = newustatus; in check_sdlim()
400 limit->ucount = 0; in check_sdlim()
401 } else if (++limit->ucount >= 3) { in check_sdlim()
402 limit->last_val = sensor.value; in check_sdlim()
403 limit->ustatus2 = in check_sdlim()
404 limit->ustatus = newustatus; in check_sdlim()
405 limit->ustatus_changed = this_check; in check_sdlim()
442 struct limits_t *limit; in report_sdlim() local
444 TAILQ_FOREACH(limit, &sdlim->limits, entries) { in report_sdlim()
445 if ((limit->astatus_changed <= last_report) && in report_sdlim()
446 (limit->ustatus_changed <= last_report)) in report_sdlim()
449 if (limit->astatus_changed > last_report) { in report_sdlim()
452 switch (limit->astatus) { in report_sdlim()
469 syslog(limit->astatus == SENSOR_S_OK ? LOG_INFO : in report_sdlim()
471 sdlim->dxname, sensor_type_s[limit->type], in report_sdlim()
472 limit->numt, in report_sdlim()
473 print_sensor(limit->type, limit->last_val), as); in report_sdlim()
476 if (limit->ustatus_changed > last_report) { in report_sdlim()
479 switch (limit->ustatus) { in report_sdlim()
490 print_sensor(limit->type, limit->last_val)); in report_sdlim()
495 print_sensor(limit->type, limit->last_val), in report_sdlim()
496 print_sensor(limit->type, limit->upper)); in report_sdlim()
501 print_sensor(limit->type, limit->last_val), in report_sdlim()
502 print_sensor(limit->type, limit->lower)); in report_sdlim()
505 syslog(limit->ustatus == SENSORSD_S_WITHIN ? LOG_INFO : in report_sdlim()
507 sdlim->dxname, sensor_type_s[limit->type], in report_sdlim()
508 limit->numt, us); in report_sdlim()
511 if (limit->command) { in report_sdlim()
513 char *cmd = limit->command; in report_sdlim()
524 buf[n++] = limit->command[i]; in report_sdlim()
540 sensor_type_s[limit->type]); in report_sdlim()
544 limit->numt); in report_sdlim()
549 switch (limit->ustatus) { in report_sdlim()
573 switch (limit->astatus) { in report_sdlim()
595 print_sensor(limit->type, in report_sdlim()
596 limit->last_val)); in report_sdlim()
600 print_sensor(limit->type, in report_sdlim()
601 limit->lower)); in report_sdlim()
605 print_sensor(limit->type, in report_sdlim()
606 limit->upper)); in report_sdlim()