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
fs
proc
loadavg.c
Go to the documentation of this file.
1
#include <linux/fs.h>
2
#include <
linux/init.h
>
3
#include <
linux/pid_namespace.h
>
4
#include <
linux/proc_fs.h
>
5
#include <linux/sched.h>
6
#include <
linux/seq_file.h
>
7
#include <
linux/seqlock.h
>
8
#include <linux/time.h>
9
10
#define LOAD_INT(x) ((x) >> FSHIFT)
11
#define LOAD_FRAC(x) LOAD_INT(((x) & (FIXED_1-1)) * 100)
12
13
static
int
loadavg_proc_show(
struct
seq_file
*
m
,
void
*
v
)
14
{
15
unsigned
long
avnrun[3];
16
17
get_avenrun
(avnrun,
FIXED_1
/200, 0);
18
19
seq_printf
(m,
"%lu.%02lu %lu.%02lu %lu.%02lu %ld/%d %d\n"
,
20
LOAD_INT
(avnrun[0]),
LOAD_FRAC
(avnrun[0]),
21
LOAD_INT
(avnrun[1]),
LOAD_FRAC
(avnrun[1]),
22
LOAD_INT
(avnrun[2]),
LOAD_FRAC
(avnrun[2]),
23
nr_running
(),
nr_threads
,
24
task_active_pid_ns
(
current
)->last_pid);
25
return
0;
26
}
27
28
static
int
loadavg_proc_open(
struct
inode
*
inode
,
struct
file
*
file
)
29
{
30
return
single_open
(file, loadavg_proc_show,
NULL
);
31
}
32
33
static
const
struct
file_operations
loadavg_proc_fops = {
34
.open = loadavg_proc_open,
35
.read =
seq_read
,
36
.llseek =
seq_lseek
,
37
.release =
single_release
,
38
};
39
40
static
int
__init
proc_loadavg_init(
void
)
41
{
42
proc_create(
"loadavg"
, 0,
NULL
, &loadavg_proc_fops);
43
return
0;
44
}
45
module_init
(proc_loadavg_init);
Generated on Thu Jan 10 2013 14:49:43 for Linux Kernel by
1.8.2