From 38e1aef3afc51af8cea167886b1ab966970c908e Mon Sep 17 00:00:00 2001 From: Sukru Senli Date: Mon, 23 Nov 2020 09:14:55 +0100 Subject: [PATCH] deviceinfo: convert Linux priority to a value between 0 and 99 --- dmtree/tr181/deviceinfo-iopsyswrt.c | 10 ++++++++++ libbbf_api/dmcommon.h | 1 + 2 files changed, 11 insertions(+) diff --git a/dmtree/tr181/deviceinfo-iopsyswrt.c b/dmtree/tr181/deviceinfo-iopsyswrt.c index 28be98c9..9c4b539f 100644 --- a/dmtree/tr181/deviceinfo-iopsyswrt.c +++ b/dmtree/tr181/deviceinfo-iopsyswrt.c @@ -170,7 +170,17 @@ int os__get_process_size(char* refparam, struct dmctx *ctx, void *data, char *in /*#Device.DeviceInfo.ProcessStatus.Process.{i}.Priority!UBUS:router.system/processes//processes[@i-1].priority*/ int os__get_process_priority(char* refparam, struct dmctx *ctx, void *data, char *instance, char **value) { + int priority = 0; + *value = dmjson_get_value((json_object *)data, 1, "priority"); + + priority = (*value && **value) ? atoi(*value) : 0; + + /* Convert Linux priority to a value between 0 and 99 */ + priority = round((priority + 100) * 99 / 139); + + dmasprintf(value, "%d", priority); + return 0; } diff --git a/libbbf_api/dmcommon.h b/libbbf_api/dmcommon.h index a7a70fcd..b53b2576 100644 --- a/libbbf_api/dmcommon.h +++ b/libbbf_api/dmcommon.h @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include