// SPDX-License-Identifier: GPL-2.0 /* * A switch dense enough that Clang builds a jump table for it, in a section of * its own: .rodata..Lswitch.table.. * * The table belongs to the function and has to travel with it. It is named * after the function but is not part of it, so klp diff has to associate the * two rather than treating the table as unrelated data. * * The patch adds a case, which changes the table's contents and length. */ static const char __modinfo[] __attribute__((section(".modinfo"), used, aligned(1))) = "\0name=vmlinux"; const char *status_to_string(unsigned int c) { switch (c) { case 0: return "idle"; case 1: return "running"; case 2: return "stopped"; case 3: return "error"; case 4: return "paused"; case 5: return "waiting"; case 6: return "starting"; case 7: return "stopping"; #ifdef PATCHED case 8: return "completed"; #endif } return "unknown"; }