^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) %option prefix="perf_pmu_"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) %{
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #include <stdlib.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #include <linux/bitops.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) #include "pmu.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #include "pmu-bison.h"
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) static int value(int base)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) long num;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) errno = 0;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) num = strtoul(perf_pmu_text, NULL, base);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) if (errno)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) return PP_ERROR;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) perf_pmu_lval.num = num;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) return PP_VALUE;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) %}
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) num_dec [0-9]+
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) %%
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) {num_dec} { return value(10); }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) config { return PP_CONFIG; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) config1 { return PP_CONFIG1; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) config2 { return PP_CONFIG2; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - { return '-'; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) : { return ':'; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) , { return ','; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) . { ; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) \n { ; }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) %%
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) int perf_pmu_wrap(void)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) return 1;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) }