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
include
linux
shmem_fs.h
Go to the documentation of this file.
1
#ifndef __SHMEM_FS_H
2
#define __SHMEM_FS_H
3
4
#include <
linux/swap.h
>
5
#include <linux/mempolicy.h>
6
#include <
linux/pagemap.h
>
7
#include <
linux/percpu_counter.h
>
8
#include <linux/xattr.h>
9
10
/* inode in-kernel data */
11
12
struct
shmem_inode_info
{
13
spinlock_t
lock
;
14
unsigned
long
flags
;
15
unsigned
long
alloced
;
/* data pages alloced to file */
16
union
{
17
unsigned
long
swapped
;
/* subtotal assigned to swap */
18
char
*
symlink
;
/* unswappable short symlink */
19
};
20
struct
shared_policy
policy
;
/* NUMA memory alloc policy */
21
struct
list_head
swaplist
;
/* chain of maybes on swap */
22
struct
simple_xattrs
xattrs
;
/* list of xattrs */
23
struct
inode
vfs_inode
;
24
};
25
26
struct
shmem_sb_info
{
27
unsigned
long
max_blocks
;
/* How many blocks are allowed */
28
struct
percpu_counter
used_blocks
;
/* How many are allocated */
29
unsigned
long
max_inodes
;
/* How many inodes are allowed */
30
unsigned
long
free_inodes
;
/* How many are left for allocation */
31
spinlock_t
stat_lock
;
/* Serialize shmem_sb_info changes */
32
kuid_t
uid
;
/* Mount uid for root directory */
33
kgid_t
gid
;
/* Mount gid for root directory */
34
umode_t
mode
;
/* Mount mode for root directory */
35
struct
mempolicy
*
mpol
;
/* default memory policy for mappings */
36
};
37
38
static
inline
struct
shmem_inode_info
*SHMEM_I(
struct
inode
*
inode
)
39
{
40
return
container_of
(inode,
struct
shmem_inode_info
,
vfs_inode
);
41
}
42
43
/*
44
* Functions in mm/shmem.c called directly from elsewhere:
45
*/
46
extern
int
shmem_init
(
void
);
47
extern
int
shmem_fill_super
(
struct
super_block
*
sb
,
void
*
data
,
int
silent);
48
extern
struct
file
*
shmem_file_setup
(
const
char
*
name
,
49
loff_t
size
,
unsigned
long
flags
);
50
extern
int
shmem_zero_setup
(
struct
vm_area_struct
*);
51
extern
int
shmem_lock
(
struct
file
*
file
,
int
lock,
struct
user_struct
*
user
);
52
extern
void
shmem_unlock_mapping
(
struct
address_space
*
mapping
);
53
extern
struct
page
*
shmem_read_mapping_page_gfp
(
struct
address_space
*
mapping
,
54
pgoff_t
index
,
gfp_t
gfp_mask
);
55
extern
void
shmem_truncate_range
(
struct
inode
*
inode
, loff_t
start
, loff_t
end
);
56
extern
int
shmem_unuse
(
swp_entry_t
entry
,
struct
page
*
page
);
57
58
static
inline
struct
page
*shmem_read_mapping_page(
59
struct
address_space
*
mapping
,
pgoff_t
index
)
60
{
61
return
shmem_read_mapping_page_gfp
(mapping, index,
62
mapping_gfp_mask(mapping));
63
}
64
65
#endif
Generated on Thu Jan 10 2013 14:52:35 for Linux Kernel by
1.8.2