Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
3b5d5c6b
Commit
3b5d5c6b
authored
Oct 06, 2008
by
Alexey Dobriyan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
proc: move /proc/modules boilerplate to kernel/module.c
Signed-off-by:
Alexey Dobriyan
<
adobriyan@gmail.com
>
parent
31d85ab2
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
35 deletions
+41
-35
fs/proc/proc_misc.c
fs/proc/proc_misc.c
+0
-17
kernel/module.c
kernel/module.c
+41
-18
No files found.
fs/proc/proc_misc.c
View file @
3b5d5c6b
...
...
@@ -57,20 +57,6 @@
#include <asm/div64.h>
#include "internal.h"
#ifdef CONFIG_MODULES
extern
const
struct
seq_operations
modules_op
;
static
int
modules_open
(
struct
inode
*
inode
,
struct
file
*
file
)
{
return
seq_open
(
file
,
&
modules_op
);
}
static
const
struct
file_operations
proc_modules_operations
=
{
.
open
=
modules_open
,
.
read
=
seq_read
,
.
llseek
=
seq_lseek
,
.
release
=
seq_release
,
};
#endif
#ifdef CONFIG_PROC_PAGE_MONITOR
#define KPMSIZE sizeof(u64)
#define KPMMASK (KPMSIZE - 1)
...
...
@@ -209,9 +195,6 @@ void __init proc_misc_init(void)
proc_symlink
(
"mounts"
,
NULL
,
"self/mounts"
);
/* And now for trickier ones */
#ifdef CONFIG_MODULES
proc_create
(
"modules"
,
0
,
NULL
,
&
proc_modules_operations
);
#endif
#ifdef CONFIG_SCHEDSTATS
proc_create
(
"schedstat"
,
0
,
NULL
,
&
proc_schedstat_operations
);
#endif
...
...
kernel/module.c
View file @
3b5d5c6b
...
...
@@ -20,11 +20,13 @@
#include <linux/moduleloader.h>
#include <linux/init.h>
#include <linux/kallsyms.h>
#include <linux/fs.h>
#include <linux/sysfs.h>
#include <linux/kernel.h>
#include <linux/slab.h>
#include <linux/vmalloc.h>
#include <linux/elf.h>
#include <linux/proc_fs.h>
#include <linux/seq_file.h>
#include <linux/syscalls.h>
#include <linux/fcntl.h>
...
...
@@ -2599,23 +2601,6 @@ unsigned long module_kallsyms_lookup_name(const char *name)
}
#endif
/* CONFIG_KALLSYMS */
/* Called by the /proc file system to return a list of modules. */
static
void
*
m_start
(
struct
seq_file
*
m
,
loff_t
*
pos
)
{
mutex_lock
(
&
module_mutex
);
return
seq_list_start
(
&
modules
,
*
pos
);
}
static
void
*
m_next
(
struct
seq_file
*
m
,
void
*
p
,
loff_t
*
pos
)
{
return
seq_list_next
(
p
,
&
modules
,
pos
);
}
static
void
m_stop
(
struct
seq_file
*
m
,
void
*
p
)
{
mutex_unlock
(
&
module_mutex
);
}
static
char
*
module_flags
(
struct
module
*
mod
,
char
*
buf
)
{
int
bx
=
0
;
...
...
@@ -2649,6 +2634,24 @@ static char *module_flags(struct module *mod, char *buf)
return
buf
;
}
#ifdef CONFIG_PROC_FS
/* Called by the /proc file system to return a list of modules. */
static
void
*
m_start
(
struct
seq_file
*
m
,
loff_t
*
pos
)
{
mutex_lock
(
&
module_mutex
);
return
seq_list_start
(
&
modules
,
*
pos
);
}
static
void
*
m_next
(
struct
seq_file
*
m
,
void
*
p
,
loff_t
*
pos
)
{
return
seq_list_next
(
p
,
&
modules
,
pos
);
}
static
void
m_stop
(
struct
seq_file
*
m
,
void
*
p
)
{
mutex_unlock
(
&
module_mutex
);
}
static
int
m_show
(
struct
seq_file
*
m
,
void
*
p
)
{
struct
module
*
mod
=
list_entry
(
p
,
struct
module
,
list
);
...
...
@@ -2679,13 +2682,33 @@ static int m_show(struct seq_file *m, void *p)
Where refcount is a number or -, and deps is a comma-separated list
of depends or -.
*/
const
struct
seq_operations
modules_op
=
{
static
const
struct
seq_operations
modules_op
=
{
.
start
=
m_start
,
.
next
=
m_next
,
.
stop
=
m_stop
,
.
show
=
m_show
};
static
int
modules_open
(
struct
inode
*
inode
,
struct
file
*
file
)
{
return
seq_open
(
file
,
&
modules_op
);
}
static
const
struct
file_operations
proc_modules_operations
=
{
.
open
=
modules_open
,
.
read
=
seq_read
,
.
llseek
=
seq_lseek
,
.
release
=
seq_release
,
};
static
int
__init
proc_modules_init
(
void
)
{
proc_create
(
"modules"
,
0
,
NULL
,
&
proc_modules_operations
);
return
0
;
}
module_init
(
proc_modules_init
);
#endif
/* Given an address, look for it in the module exception tables. */
const
struct
exception_table_entry
*
search_module_extables
(
unsigned
long
addr
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment