cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

kdb.c (1463B)


      1// SPDX-License-Identifier: GPL-2.0-or-later
      2/*
      3 * Module kdb support
      4 *
      5 * Copyright (C) 2010 Jason Wessel
      6 */
      7
      8#include <linux/module.h>
      9#include <linux/kdb.h>
     10#include "internal.h"
     11
     12/*
     13 * kdb_lsmod - This function implements the 'lsmod' command.  Lists
     14 *	currently loaded kernel modules.
     15 *	Mostly taken from userland lsmod.
     16 */
     17int kdb_lsmod(int argc, const char **argv)
     18{
     19	struct module *mod;
     20
     21	if (argc != 0)
     22		return KDB_ARGCOUNT;
     23
     24	kdb_printf("Module                  Size  modstruct     Used by\n");
     25	list_for_each_entry(mod, &modules, list) {
     26		if (mod->state == MODULE_STATE_UNFORMED)
     27			continue;
     28
     29		kdb_printf("%-20s%8u", mod->name, mod->core_layout.size);
     30#ifdef CONFIG_ARCH_WANTS_MODULES_DATA_IN_VMALLOC
     31		kdb_printf("/%8u", mod->data_layout.size);
     32#endif
     33		kdb_printf("  0x%px ", (void *)mod);
     34#ifdef CONFIG_MODULE_UNLOAD
     35		kdb_printf("%4d ", module_refcount(mod));
     36#endif
     37		if (mod->state == MODULE_STATE_GOING)
     38			kdb_printf(" (Unloading)");
     39		else if (mod->state == MODULE_STATE_COMING)
     40			kdb_printf(" (Loading)");
     41		else
     42			kdb_printf(" (Live)");
     43		kdb_printf(" 0x%px", mod->core_layout.base);
     44#ifdef CONFIG_ARCH_WANTS_MODULES_DATA_IN_VMALLOC
     45		kdb_printf("/0x%px", mod->data_layout.base);
     46#endif
     47
     48#ifdef CONFIG_MODULE_UNLOAD
     49		{
     50			struct module_use *use;
     51
     52			kdb_printf(" [ ");
     53			list_for_each_entry(use, &mod->source_list,
     54					    source_list)
     55				kdb_printf("%s ", use->target->name);
     56			kdb_printf("]\n");
     57		}
     58#endif
     59	}
     60
     61	return 0;
     62}