From 9b6911d2e66a9539aa2af8e808956f978fde3316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Thu, 13 Aug 2026 18:37:36 +0200 Subject: [PATCH] basic/psi-util: add lookup table for PressureType --- src/basic/psi-util.c | 16 +++++++++------- src/basic/psi-util.h | 3 +++ 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/basic/psi-util.c b/src/basic/psi-util.c index f2a93e674f..d1f5838bb1 100644 --- a/src/basic/psi-util.c +++ b/src/basic/psi-util.c @@ -19,7 +19,7 @@ int read_resource_pressure(const char *path, PressureType type, ResourcePressure _cleanup_fclose_ FILE *f = NULL; unsigned field_filled = 0; ResourcePressure rp = {}; - const char *t, *cline; + const char *cline; char *word; int r; @@ -27,12 +27,7 @@ int read_resource_pressure(const char *path, PressureType type, ResourcePressure assert(IN_SET(type, PRESSURE_TYPE_SOME, PRESSURE_TYPE_FULL)); assert(ret); - if (type == PRESSURE_TYPE_SOME) - t = "some"; - else if (type == PRESSURE_TYPE_FULL) - t = "full"; - else - return -EINVAL; + const char *t = ASSERT_PTR(pressure_type_to_string(type)); r = fopen_unlocked(path, "re", &f); if (r < 0) @@ -131,6 +126,13 @@ static const char* const pressure_resource_table[_PRESSURE_RESOURCE_MAX] = { DEFINE_STRING_TABLE_LOOKUP(pressure_resource, PressureResource); +static const char* const pressure_type_table[_PRESSURE_TYPE_MAX] = { + [PRESSURE_TYPE_SOME] = "some", + [PRESSURE_TYPE_FULL] = "full", +}; + +DEFINE_STRING_TABLE_LOOKUP(pressure_type, PressureType); + int is_pressure_supported(void) { static thread_local int cached = -1; int r; diff --git a/src/basic/psi-util.h b/src/basic/psi-util.h index 458c7f63ea..c82a1da134 100644 --- a/src/basic/psi-util.h +++ b/src/basic/psi-util.h @@ -7,6 +7,8 @@ typedef enum PressureType { PRESSURE_TYPE_SOME, PRESSURE_TYPE_FULL, + _PRESSURE_TYPE_MAX, + _PRESSURE_TYPE_INVALID = -EINVAL, } PressureType; typedef enum PressureResource { @@ -50,6 +52,7 @@ static inline const PressureResourceInfo* pressure_resource_get_info(PressureRes } DECLARE_STRING_TABLE_LOOKUP(pressure_resource, PressureResource); +DECLARE_STRING_TABLE_LOOKUP(pressure_type, PressureType); /* Default parameters for pressure watch logic in sd-event and PID 1 */ #define PRESSURE_DEFAULT_TYPE "some"