Commit | Line | Data |
---|---|---|
a99d6fde PM |
1 | /* |
2 | * debugfs ops for process ASIDs | |
3 | * | |
4 | * Copyright (C) 2000, 2001 Paolo Alberelli | |
5 | * Copyright (C) 2003 - 2008 Paul Mundt | |
6 | * Copyright (C) 2003, 2004 Richard Curnow | |
7 | * | |
8 | * Provides a debugfs file that lists out the ASIDs currently associated | |
9 | * with the processes. | |
10 | * | |
11 | * In the SH-5 case, if the DM.PC register is examined through the debug | |
12 | * link, this shows ASID + PC. To make use of this, the PID->ASID | |
13 | * relationship needs to be known. This is primarily for debugging. | |
14 | * | |
15 | * This file is subject to the terms and conditions of the GNU General Public | |
16 | * License. See the file "COPYING" in the main directory of this archive | |
17 | * for more details. | |
18 | */ | |
19 | #include <linux/init.h> | |
a99d6fde PM |
20 | #include <linux/debugfs.h> |
21 | #include <linux/seq_file.h> | |
22 | #include <linux/spinlock.h> | |
3f07c014 | 23 | #include <linux/sched/signal.h> |
29930025 | 24 | #include <linux/sched/task.h> |
3f07c014 | 25 | |
a99d6fde PM |
26 | #include <asm/processor.h> |
27 | #include <asm/mmu_context.h> | |
28 | ||
a1153636 | 29 | static int asids_debugfs_show(struct seq_file *file, void *iter) |
a99d6fde PM |
30 | { |
31 | struct task_struct *p; | |
32 | ||
33 | read_lock(&tasklist_lock); | |
34 | ||
35 | for_each_process(p) { | |
36 | int pid = p->pid; | |
37 | ||
38 | if (unlikely(!pid)) | |
39 | continue; | |
40 | ||
41 | if (p->mm) | |
3a3b311c | 42 | seq_printf(file, "%5d : %04lx\n", pid, |
a99d6fde | 43 | cpu_asid(smp_processor_id(), p->mm)); |
a99d6fde PM |
44 | } |
45 | ||
46 | read_unlock(&tasklist_lock); | |
47 | ||
48 | return 0; | |
49 | } | |
50 | ||
a1153636 | 51 | DEFINE_SHOW_ATTRIBUTE(asids_debugfs); |
a99d6fde PM |
52 | |
53 | static int __init asids_debugfs_init(void) | |
54 | { | |
03eb2a08 GKH |
55 | debugfs_create_file("asids", S_IRUSR, arch_debugfs_dir, NULL, |
56 | &asids_debugfs_fops); | |
57 | return 0; | |
a99d6fde | 58 | } |
f15412aa | 59 | device_initcall(asids_debugfs_init); |