From: Thomas Weißschuh Date: Tue, 11 Jul 2023 11:16:00 +0000 (+0200) Subject: lsclocks: add COL_TYPE X-Git-Tag: v2.40-rc1~332^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ac9ee302d3649b19abb87bae12da0c7d14712e3b;p=thirdparty%2Futil-linux.git lsclocks: add COL_TYPE Signed-off-by: Thomas Weißschuh --- diff --git a/misc-utils/lsclocks.1.adoc b/misc-utils/lsclocks.1.adoc index 4024c93e4b..af3e55d851 100644 --- a/misc-utils/lsclocks.1.adoc +++ b/misc-utils/lsclocks.1.adoc @@ -48,6 +48,9 @@ include::man-common/help-version.adoc[] Each column has a type. Types are surround by < and >. +TYPE <``string``>:: +Clock type. + ID <``number``>:: Numeric clock ID. diff --git a/misc-utils/lsclocks.c b/misc-utils/lsclocks.c index dd6fedda71..ee48dfefbf 100644 --- a/misc-utils/lsclocks.c +++ b/misc-utils/lsclocks.c @@ -74,7 +74,21 @@ #define CLOCK_TAI 11 #endif +enum CLOCK_TYPE { + CT_SYS, +}; + +static const char *clock_type_name(enum CLOCK_TYPE type) +{ + switch (type) { + case CT_SYS: + return "sys"; + } + errx(EXIT_FAILURE, _("Unknown clock type %d"), type); +} + struct clockinfo { + enum CLOCK_TYPE type; clockid_t id; const char * const id_name; const char * const name; @@ -82,21 +96,22 @@ struct clockinfo { }; static const struct clockinfo clocks[] = { - { CLOCK_REALTIME, "CLOCK_REALTIME", "realtime" }, - { CLOCK_MONOTONIC, "CLOCK_MONOTONIC", "monotonic", - .ns_offset_name = "monotonic" }, - { CLOCK_MONOTONIC_RAW, "CLOCK_MONOTONIC_RAW", "monotonic-raw" }, - { CLOCK_REALTIME_COARSE, "CLOCK_REALTIME_COARSE", "realtime-coarse" }, - { CLOCK_MONOTONIC_COARSE, "CLOCK_MONOTONIC_COARSE", "monotonic-coarse" }, - { CLOCK_BOOTTIME, "CLOCK_BOOTTIME", "boottime", - .ns_offset_name = "boottime" }, - { CLOCK_REALTIME_ALARM, "CLOCK_REALTIME_ALARM", "realtime-alarm" }, - { CLOCK_BOOTTIME_ALARM, "CLOCK_BOOTTIME_ALARM", "boottime-alarm" }, - { CLOCK_TAI, "CLOCK_TAI", "tai" }, + { CT_SYS, CLOCK_REALTIME, "CLOCK_REALTIME", "realtime" }, + { CT_SYS, CLOCK_MONOTONIC, "CLOCK_MONOTONIC", "monotonic", + .ns_offset_name = "monotonic" }, + { CT_SYS, CLOCK_MONOTONIC_RAW, "CLOCK_MONOTONIC_RAW", "monotonic-raw" }, + { CT_SYS, CLOCK_REALTIME_COARSE, "CLOCK_REALTIME_COARSE", "realtime-coarse" }, + { CT_SYS, CLOCK_MONOTONIC_COARSE, "CLOCK_MONOTONIC_COARSE", "monotonic-coarse" }, + { CT_SYS, CLOCK_BOOTTIME, "CLOCK_BOOTTIME", "boottime", + .ns_offset_name = "boottime" }, + { CT_SYS, CLOCK_REALTIME_ALARM, "CLOCK_REALTIME_ALARM", "realtime-alarm" }, + { CT_SYS, CLOCK_BOOTTIME_ALARM, "CLOCK_BOOTTIME_ALARM", "boottime-alarm" }, + { CT_SYS, CLOCK_TAI, "CLOCK_TAI", "tai" }, }; /* column IDs */ enum { + COL_TYPE, COL_ID, COL_CLOCK, COL_NAME, @@ -119,6 +134,7 @@ struct colinfo { /* columns descriptions */ static const struct colinfo infos[] = { + [COL_TYPE] = { "TYPE", 1, 0, SCOLS_JSON_STRING, N_("type") }, [COL_ID] = { "ID", 1, SCOLS_FL_RIGHT, SCOLS_JSON_NUMBER, N_("numeric id") }, [COL_CLOCK] = { "CLOCK", 1, 0, SCOLS_JSON_STRING, N_("symbolic name") }, [COL_NAME] = { "NAME", 1, 0, SCOLS_JSON_STRING, N_("readable name") }, @@ -333,6 +349,7 @@ int main(int argc, char **argv) if (!ncolumns) { columns[ncolumns++] = COL_ID; columns[ncolumns++] = COL_NAME; + columns[ncolumns++] = COL_TYPE; columns[ncolumns++] = COL_TIME; columns[ncolumns++] = COL_RESOL; columns[ncolumns++] = COL_ISO_TIME; @@ -377,6 +394,9 @@ int main(int argc, char **argv) for (j = 0; j < ncolumns; j++) { switch (columns[j]) { + case COL_TYPE: + scols_line_set_data(ln, j, clock_type_name(clockinfo->type)); + break; case COL_ID: scols_line_asprintf(ln, j, "%ju", (uintmax_t) clockinfo->id); break; diff --git a/tests/expected/misc/lsclocks-basic b/tests/expected/misc/lsclocks-basic index b3b25f4a63..1b375b83c1 100644 --- a/tests/expected/misc/lsclocks-basic +++ b/tests/expected/misc/lsclocks-basic @@ -1,10 +1,10 @@ -ID CLOCK NAME - 0 CLOCK_REALTIME realtime - 1 CLOCK_MONOTONIC monotonic - 4 CLOCK_MONOTONIC_RAW monotonic-raw - 5 CLOCK_REALTIME_COARSE realtime-coarse - 6 CLOCK_MONOTONIC_COARSE monotonic-coarse - 7 CLOCK_BOOTTIME boottime - 8 CLOCK_REALTIME_ALARM realtime-alarm - 9 CLOCK_BOOTTIME_ALARM boottime-alarm -11 CLOCK_TAI tai +TYPE ID CLOCK NAME +sys 0 CLOCK_REALTIME realtime +sys 1 CLOCK_MONOTONIC monotonic +sys 4 CLOCK_MONOTONIC_RAW monotonic-raw +sys 5 CLOCK_REALTIME_COARSE realtime-coarse +sys 6 CLOCK_MONOTONIC_COARSE monotonic-coarse +sys 7 CLOCK_BOOTTIME boottime +sys 8 CLOCK_REALTIME_ALARM realtime-alarm +sys 9 CLOCK_BOOTTIME_ALARM boottime-alarm +sys 11 CLOCK_TAI tai diff --git a/tests/ts/misc/lsclocks b/tests/ts/misc/lsclocks index 55ee4df40e..4cf414bdd0 100755 --- a/tests/ts/misc/lsclocks +++ b/tests/ts/misc/lsclocks @@ -29,7 +29,7 @@ mask_timestamps() { ts_init_subtest basic -"$TS_CMD_LSCLOCKS" -o ID,CLOCK,NAME > "$TS_OUTPUT" 2>> "$TS_ERRLOG" +"$TS_CMD_LSCLOCKS" -o TYPE,ID,CLOCK,NAME > "$TS_OUTPUT" 2>> "$TS_ERRLOG" ts_finalize_subtest