Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
sh
intc
virq-debugfs.c
Go to the documentation of this file.
1
/*
2
* Support for virtual IRQ subgroups debugfs mapping.
3
*
4
* Copyright (C) 2010 Paul Mundt
5
*
6
* Modelled after arch/powerpc/kernel/irq.c.
7
*
8
* This file is subject to the terms and conditions of the GNU General Public
9
* License. See the file "COPYING" in the main directory of this archive
10
* for more details.
11
*/
12
#include <
linux/seq_file.h
>
13
#include <linux/fs.h>
14
#include <
linux/init.h
>
15
#include <
linux/irq.h
>
16
#include <
linux/debugfs.h
>
17
#include "
internals.h
"
18
19
static
int
intc_irq_xlate_debug(
struct
seq_file
*
m
,
void
*
priv
)
20
{
21
int
i
;
22
23
seq_printf
(m,
"%-5s %-7s %-15s\n"
,
"irq"
,
"enum"
,
"chip name"
);
24
25
for
(i = 1; i <
nr_irqs
; i++) {
26
struct
intc_map_entry
*
entry
=
intc_irq_xlate_get
(i);
27
struct
intc_desc_int
*
desc
= entry->
desc
;
28
29
if
(!desc)
30
continue
;
31
32
seq_printf
(m,
"%5d "
, i);
33
seq_printf
(m,
"0x%05x "
, entry->
enum_id
);
34
seq_printf
(m,
"%-15s\n"
, desc->
chip
.name);
35
}
36
37
return
0;
38
}
39
40
static
int
intc_irq_xlate_open(
struct
inode
*
inode
,
struct
file
*
file
)
41
{
42
return
single_open
(file, intc_irq_xlate_debug, inode->
i_private
);
43
}
44
45
static
const
struct
file_operations
intc_irq_xlate_fops = {
46
.open = intc_irq_xlate_open,
47
.read =
seq_read
,
48
.llseek =
seq_lseek
,
49
.release =
single_release
,
50
};
51
52
static
int
__init
intc_irq_xlate_init(
void
)
53
{
54
/*
55
* XXX.. use arch_debugfs_dir here when all of the intc users are
56
* converted.
57
*/
58
if
(
debugfs_create_file
(
"intc_irq_xlate"
,
S_IRUGO
,
NULL
,
NULL
,
59
&intc_irq_xlate_fops) ==
NULL
)
60
return
-
ENOMEM
;
61
62
return
0;
63
}
64
fs_initcall
(intc_irq_xlate_init);
Generated on Thu Jan 10 2013 14:25:24 for Linux Kernel by
1.8.2