xref: /OK3568_Linux_fs/kernel/Documentation/core-api/mm-api.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun======================
2*4882a593SmuzhiyunMemory Management APIs
3*4882a593Smuzhiyun======================
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunUser Space Memory Access
6*4882a593Smuzhiyun========================
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun.. kernel-doc:: arch/x86/include/asm/uaccess.h
9*4882a593Smuzhiyun   :internal:
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun.. kernel-doc:: arch/x86/lib/usercopy_32.c
12*4882a593Smuzhiyun   :export:
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun.. kernel-doc:: mm/gup.c
15*4882a593Smuzhiyun   :functions: get_user_pages_fast
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun.. _mm-api-gfp-flags:
18*4882a593Smuzhiyun
19*4882a593SmuzhiyunMemory Allocation Controls
20*4882a593Smuzhiyun==========================
21*4882a593Smuzhiyun
22*4882a593SmuzhiyunFunctions which need to allocate memory often use GFP flags to express
23*4882a593Smuzhiyunhow that memory should be allocated. The GFP acronym stands for "get
24*4882a593Smuzhiyunfree pages", the underlying memory allocation function. Not every GFP
25*4882a593Smuzhiyunflag is allowed to every function which may allocate memory. Most
26*4882a593Smuzhiyunusers will want to use a plain ``GFP_KERNEL``.
27*4882a593Smuzhiyun
28*4882a593Smuzhiyun.. kernel-doc:: include/linux/gfp.h
29*4882a593Smuzhiyun   :doc: Page mobility and placement hints
30*4882a593Smuzhiyun
31*4882a593Smuzhiyun.. kernel-doc:: include/linux/gfp.h
32*4882a593Smuzhiyun   :doc: Watermark modifiers
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun.. kernel-doc:: include/linux/gfp.h
35*4882a593Smuzhiyun   :doc: Reclaim modifiers
36*4882a593Smuzhiyun
37*4882a593Smuzhiyun.. kernel-doc:: include/linux/gfp.h
38*4882a593Smuzhiyun   :doc: Useful GFP flag combinations
39*4882a593Smuzhiyun
40*4882a593SmuzhiyunThe Slab Cache
41*4882a593Smuzhiyun==============
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun.. kernel-doc:: include/linux/slab.h
44*4882a593Smuzhiyun   :internal:
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun.. kernel-doc:: mm/slab.c
47*4882a593Smuzhiyun   :export:
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun.. kernel-doc:: mm/slab_common.c
50*4882a593Smuzhiyun   :export:
51*4882a593Smuzhiyun
52*4882a593Smuzhiyun.. kernel-doc:: mm/util.c
53*4882a593Smuzhiyun   :functions: kfree_const kvmalloc_node kvfree
54*4882a593Smuzhiyun
55*4882a593SmuzhiyunVirtually Contiguous Mappings
56*4882a593Smuzhiyun=============================
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun.. kernel-doc:: mm/vmalloc.c
59*4882a593Smuzhiyun   :export:
60*4882a593Smuzhiyun
61*4882a593SmuzhiyunFile Mapping and Page Cache
62*4882a593Smuzhiyun===========================
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun.. kernel-doc:: mm/readahead.c
65*4882a593Smuzhiyun   :export:
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun.. kernel-doc:: mm/filemap.c
68*4882a593Smuzhiyun   :export:
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun.. kernel-doc:: mm/page-writeback.c
71*4882a593Smuzhiyun   :export:
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun.. kernel-doc:: mm/truncate.c
74*4882a593Smuzhiyun   :export:
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun.. kernel-doc:: include/linux/pagemap.h
77*4882a593Smuzhiyun   :internal:
78*4882a593Smuzhiyun
79*4882a593SmuzhiyunMemory pools
80*4882a593Smuzhiyun============
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun.. kernel-doc:: mm/mempool.c
83*4882a593Smuzhiyun   :export:
84*4882a593Smuzhiyun
85*4882a593SmuzhiyunDMA pools
86*4882a593Smuzhiyun=========
87*4882a593Smuzhiyun
88*4882a593Smuzhiyun.. kernel-doc:: mm/dmapool.c
89*4882a593Smuzhiyun   :export:
90*4882a593Smuzhiyun
91*4882a593SmuzhiyunMore Memory Management Functions
92*4882a593Smuzhiyun================================
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun.. kernel-doc:: mm/memory.c
95*4882a593Smuzhiyun   :export:
96*4882a593Smuzhiyun
97*4882a593Smuzhiyun.. kernel-doc:: mm/page_alloc.c
98