From 5149f2fe08bc672f671b9afff72192885f14b120 Mon Sep 17 00:00:00 2001 From: FlorealRISSO <floreal.risso@univ-tlse3.fr> Date: Tue, 28 Mar 2023 09:36:14 +0200 Subject: [PATCH] update: script --- .gitignore | 1 + meminfo_option.sh | 48 --- src/meminfo_option.h | 402 ---------------------- src/meminfo_option.sh | 46 +++ src/{memory_extra.c => memory_counters.c} | 12 +- 5 files changed, 53 insertions(+), 456 deletions(-) delete mode 100644 meminfo_option.sh delete mode 100644 src/meminfo_option.h create mode 100644 src/meminfo_option.sh rename src/{memory_extra.c => memory_counters.c} (89%) diff --git a/.gitignore b/.gitignore index 83a8dc0..eb6940e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ doc/info_reader_ex doc/mojitos.1 tests/run src/counters_option.h +src/meminfo_option.h src/sensors.h sensors.mk bin diff --git a/meminfo_option.sh b/meminfo_option.sh deleted file mode 100644 index 4443868..0000000 --- a/meminfo_option.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!bin/sh - -MEMINFO="/proc/meminfo" -COUNT=0 - -function get_meminfo_words { - printf "char *meminfo_words[] = {\n" - while read line; do - COUNT=$(expr $COUNT + 1) - word=$(echo $line | awk '{print $1}') - printf " \"${word::-1}\",\n" - done <$MEMINFO - - printf "};\n\n" -} - -function get_count { - printf "static const unsigned int meminfo_count = $COUNT;\n\n" -} - -function get_meminfo_setter { - count=0 - while [ $count -lt $COUNT ]; do - printf "void set_result_offset$count(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[$count] = (uint64_t) data; -}\n\n" - count=$(expr $count + 1) - done -} - -function get_functions { - printf "static void (*setter_functions[])(GenericPointer, GenericPointer) = {\n" - count=0 - while [ $count -lt $COUNT ]; do - printf " set_result_offset$count,\n" - count=$(expr $count + 1) - done - printf "};\n\n" -} - -DEST="./src/meminfo_option.h" -printf "#include \"inttypes.h\"\n" >$DEST -printf "#include <info_reader.h>\n\n" >>$DEST -get_meminfo_words "./text.h" >>$DEST -get_count >>$DEST -get_meminfo_setter >>$DEST -get_functions >>$DEST diff --git a/src/meminfo_option.h b/src/meminfo_option.h deleted file mode 100644 index f3369b8..0000000 --- a/src/meminfo_option.h +++ /dev/null @@ -1,402 +0,0 @@ -#include "inttypes.h" -#include <info_reader.h> -char *meminfo_words[] = { - "MemTotal", - "MemFree", - "MemAvailable", - "Buffers", - "Cached", - "SwapCached", - "Active", - "Inactive", - "Active(anon)", - "Inactive(anon)", - "Active(file)", - "Inactive(file)", - "Unevictable", - "Mlocked", - "SwapTotal", - "SwapFree", - "Zswap", - "Zswapped", - "Dirty", - "Writeback", - "AnonPages", - "Mapped", - "Shmem", - "KReclaimable", - "Slab", - "SReclaimable", - "SUnreclaim", - "KernelStack", - "PageTables", - "SecPageTables", - "NFS_Unstable", - "Bounce", - "WritebackTmp", - "CommitLimit", - "Committed_AS", - "VmallocTotal", - "VmallocUsed", - "VmallocChunk", - "Percpu", - "HardwareCorrupted", - "AnonHugePages", - "ShmemHugePages", - "ShmemPmdMapped", - "FileHugePages", - "FilePmdMapped", - "CmaTotal", - "CmaFree", - "HugePages_Total", - "HugePages_Free", - "HugePages_Rsvd", - "HugePages_Surp", - "Hugepagesize", - "Hugetlb", - "DirectMap4k", - "DirectMap2M", - "DirectMap1G", -}; - -static const unsigned int meminfo_count = 56; - -void set_result_offset0(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[0] = (uint64_t) data; -} - -void set_result_offset1(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[1] = (uint64_t) data; -} - -void set_result_offset2(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[2] = (uint64_t) data; -} - -void set_result_offset3(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[3] = (uint64_t) data; -} - -void set_result_offset4(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[4] = (uint64_t) data; -} - -void set_result_offset5(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[5] = (uint64_t) data; -} - -void set_result_offset6(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[6] = (uint64_t) data; -} - -void set_result_offset7(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[7] = (uint64_t) data; -} - -void set_result_offset8(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[8] = (uint64_t) data; -} - -void set_result_offset9(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[9] = (uint64_t) data; -} - -void set_result_offset10(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[10] = (uint64_t) data; -} - -void set_result_offset11(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[11] = (uint64_t) data; -} - -void set_result_offset12(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[12] = (uint64_t) data; -} - -void set_result_offset13(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[13] = (uint64_t) data; -} - -void set_result_offset14(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[14] = (uint64_t) data; -} - -void set_result_offset15(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[15] = (uint64_t) data; -} - -void set_result_offset16(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[16] = (uint64_t) data; -} - -void set_result_offset17(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[17] = (uint64_t) data; -} - -void set_result_offset18(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[18] = (uint64_t) data; -} - -void set_result_offset19(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[19] = (uint64_t) data; -} - -void set_result_offset20(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[20] = (uint64_t) data; -} - -void set_result_offset21(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[21] = (uint64_t) data; -} - -void set_result_offset22(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[22] = (uint64_t) data; -} - -void set_result_offset23(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[23] = (uint64_t) data; -} - -void set_result_offset24(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[24] = (uint64_t) data; -} - -void set_result_offset25(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[25] = (uint64_t) data; -} - -void set_result_offset26(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[26] = (uint64_t) data; -} - -void set_result_offset27(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[27] = (uint64_t) data; -} - -void set_result_offset28(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[28] = (uint64_t) data; -} - -void set_result_offset29(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[29] = (uint64_t) data; -} - -void set_result_offset30(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[30] = (uint64_t) data; -} - -void set_result_offset31(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[31] = (uint64_t) data; -} - -void set_result_offset32(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[32] = (uint64_t) data; -} - -void set_result_offset33(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[33] = (uint64_t) data; -} - -void set_result_offset34(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[34] = (uint64_t) data; -} - -void set_result_offset35(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[35] = (uint64_t) data; -} - -void set_result_offset36(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[36] = (uint64_t) data; -} - -void set_result_offset37(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[37] = (uint64_t) data; -} - -void set_result_offset38(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[38] = (uint64_t) data; -} - -void set_result_offset39(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[39] = (uint64_t) data; -} - -void set_result_offset40(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[40] = (uint64_t) data; -} - -void set_result_offset41(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[41] = (uint64_t) data; -} - -void set_result_offset42(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[42] = (uint64_t) data; -} - -void set_result_offset43(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[43] = (uint64_t) data; -} - -void set_result_offset44(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[44] = (uint64_t) data; -} - -void set_result_offset45(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[45] = (uint64_t) data; -} - -void set_result_offset46(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[46] = (uint64_t) data; -} - -void set_result_offset47(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[47] = (uint64_t) data; -} - -void set_result_offset48(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[48] = (uint64_t) data; -} - -void set_result_offset49(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[49] = (uint64_t) data; -} - -void set_result_offset50(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[50] = (uint64_t) data; -} - -void set_result_offset51(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[51] = (uint64_t) data; -} - -void set_result_offset52(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[52] = (uint64_t) data; -} - -void set_result_offset53(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[53] = (uint64_t) data; -} - -void set_result_offset54(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[54] = (uint64_t) data; -} - -void set_result_offset55(GenericPointer ptr, GenericPointer data) { - uint64_t* result = (uint64_t *) ptr; - result[55] = (uint64_t) data; -} - -static void (*setter_functions[])(GenericPointer, GenericPointer) = { - set_result_offset0, - set_result_offset1, - set_result_offset2, - set_result_offset3, - set_result_offset4, - set_result_offset5, - set_result_offset6, - set_result_offset7, - set_result_offset8, - set_result_offset9, - set_result_offset10, - set_result_offset11, - set_result_offset12, - set_result_offset13, - set_result_offset14, - set_result_offset15, - set_result_offset16, - set_result_offset17, - set_result_offset18, - set_result_offset19, - set_result_offset20, - set_result_offset21, - set_result_offset22, - set_result_offset23, - set_result_offset24, - set_result_offset25, - set_result_offset26, - set_result_offset27, - set_result_offset28, - set_result_offset29, - set_result_offset30, - set_result_offset31, - set_result_offset32, - set_result_offset33, - set_result_offset34, - set_result_offset35, - set_result_offset36, - set_result_offset37, - set_result_offset38, - set_result_offset39, - set_result_offset40, - set_result_offset41, - set_result_offset42, - set_result_offset43, - set_result_offset44, - set_result_offset45, - set_result_offset46, - set_result_offset47, - set_result_offset48, - set_result_offset49, - set_result_offset50, - set_result_offset51, - set_result_offset52, - set_result_offset53, - set_result_offset54, - set_result_offset55, -}; - diff --git a/src/meminfo_option.sh b/src/meminfo_option.sh new file mode 100644 index 0000000..54a2c6e --- /dev/null +++ b/src/meminfo_option.sh @@ -0,0 +1,46 @@ +#!/bin/sh + +# SPDX-License-Identifier: GPL-3.0-or-later +# Copyright (C) 2018-2023 Georges Da Costa <georges.da-costa@irit.fr> + +MEMINFO_PATH="/proc/meminfo" + +FUNCTION_TEMPLATE="void set_result_offset%s(GenericPointer ptr, GenericPointer data) +{ + uint64_t* result = (uint64_t *) ptr; + result[%s] = (uint64_t) data; +}\n\n" + +nb_counters=0 + +echo '#include <inttypes.h>' +echo "#include <info_reader.h>" +echo + +echo 'static char *memory_counters[] = {' +while read line; do + nb_counters=$(expr $nb_counters + 1) + word=$(echo $line | awk '{print $1}') + echo " \"${word::-1}\"," +done <$MEMINFO_PATH +echo "};" +echo + +echo "#define NB_COUNTERS $nb_counters" +echo + +count=0 +while [ $count -lt $nb_counters ]; do + printf "$FUNCTION_TEMPLATE" $count $count + count=$(expr $count + 1) +done + +echo "static void (*setter_functions[])(GenericPointer, GenericPointer) = {" +count=0 +while [ $count -lt $nb_counters ]; do + echo " set_result_offset$count," + count=$(expr $count + 1) +done +echo "};" +echo + diff --git a/src/memory_extra.c b/src/memory_counters.c similarity index 89% rename from src/memory_extra.c rename to src/memory_counters.c index f616870..4572ff0 100644 --- a/src/memory_extra.c +++ b/src/memory_counters.c @@ -16,7 +16,7 @@ KeyFinder *build_keyfinder(unsigned int count, unsigned int *indexes) { KeyFinder *keys = (KeyFinder *)calloc(count, sizeof(KeyFinder)); for (unsigned int i = 0; i < count; i++) { unsigned int idx = indexes[i]; - KeyFinder key = {.key = meminfo_words[idx], + KeyFinder key = {.key = memory_counters[idx], .delimiter = ":", .copy = long_allocator, .set = setter_functions[i]}; @@ -34,20 +34,20 @@ void memory_list(char *memory_string, unsigned int *count, memory_string = NULL; unsigned int i; - for (i = 0; i < meminfo_count; i++) { - if (strcmp(meminfo_words[i], token) == 0) { + for (i = 0; i < NB_COUNTERS; i++) { + if (strcmp(memory_counters[i], token) == 0) { (*count)++; indexes[*count - 1] = i; break; } } - if (i == meminfo_count) { + if (i == NB_COUNTERS) { fprintf(stderr, "Unknown memory counter: %s\n", token); exit(EXIT_FAILURE); } - if ((*count) > meminfo_count) { + if ((*count) > NB_COUNTERS) { fprintf(stderr, "Too much counters, there are probably duplicates\n"); exit(EXIT_FAILURE); } @@ -61,7 +61,7 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); } - unsigned int indexes[meminfo_count]; + unsigned int indexes[NB_COUNTERS]; unsigned int count = 0; memory_list(argv[1], &count, indexes); -- GitLab