at v6.19 32 lines 775 B view raw
1// SPDX-License-Identifier: GPL-2.0 2#include "spark.h" 3#include <limits.h> 4#include <linux/kernel.h> 5 6#define SPARK_SHIFT 8 7 8/* Print spark lines on outf for numval values in val. */ 9int print_spark(char *bf, int size, unsigned long *val, int numval) 10{ 11 static const char *ticks[NUM_SPARKS] = { 12 "", "", "", "", "", "", "", "" 13 }; 14 int i, printed = 0; 15 unsigned long min = ULONG_MAX, max = 0, f; 16 17 for (i = 0; i < numval; i++) { 18 if (val[i] < min) 19 min = val[i]; 20 if (val[i] > max) 21 max = val[i]; 22 } 23 f = ((max - min) << SPARK_SHIFT) / (NUM_SPARKS - 1); 24 if (f < 1) 25 f = 1; 26 for (i = 0; i < numval; i++) { 27 printed += scnprintf(bf + printed, size - printed, "%s", 28 ticks[((val[i] - min) << SPARK_SHIFT) / f]); 29 } 30 31 return printed; 32}