141f35b39SMike Rapoport====================== 241f35b39SMike RapoportMemory Management APIs 341f35b39SMike Rapoport====================== 441f35b39SMike Rapoport 541f35b39SMike RapoportUser Space Memory Access 641f35b39SMike Rapoport======================== 741f35b39SMike Rapoport 841f35b39SMike Rapoport.. kernel-doc:: arch/x86/include/asm/uaccess.h 941f35b39SMike Rapoport :internal: 1041f35b39SMike Rapoport 1141f35b39SMike Rapoport.. kernel-doc:: arch/x86/lib/usercopy_32.c 1241f35b39SMike Rapoport :export: 1341f35b39SMike Rapoport 14*cc84ac35SJonathan Corbet.. kernel-doc:: mm/gup.c 1541f35b39SMike Rapoport :functions: get_user_pages_fast 1641f35b39SMike Rapoport 1709700f8aSMike Rapoport.. _mm-api-gfp-flags: 1809700f8aSMike Rapoport 19038a07a5SMike RapoportMemory Allocation Controls 20038a07a5SMike Rapoport========================== 21038a07a5SMike Rapoport 22038a07a5SMike RapoportFunctions which need to allocate memory often use GFP flags to express 23038a07a5SMike Rapoporthow that memory should be allocated. The GFP acronym stands for "get 24038a07a5SMike Rapoportfree pages", the underlying memory allocation function. Not every GFP 25038a07a5SMike Rapoportflag is allowed to every function which may allocate memory. Most 26038a07a5SMike Rapoportusers will want to use a plain ``GFP_KERNEL``. 27038a07a5SMike Rapoport 28038a07a5SMike Rapoport.. kernel-doc:: include/linux/gfp.h 29038a07a5SMike Rapoport :doc: Page mobility and placement hints 30038a07a5SMike Rapoport 31038a07a5SMike Rapoport.. kernel-doc:: include/linux/gfp.h 32038a07a5SMike Rapoport :doc: Watermark modifiers 33038a07a5SMike Rapoport 34038a07a5SMike Rapoport.. kernel-doc:: include/linux/gfp.h 35038a07a5SMike Rapoport :doc: Reclaim modifiers 36038a07a5SMike Rapoport 37038a07a5SMike Rapoport.. kernel-doc:: include/linux/gfp.h 3880a76c72SMike Rapoport :doc: Useful GFP flag combinations 39038a07a5SMike Rapoport 4041f35b39SMike RapoportThe Slab Cache 4141f35b39SMike Rapoport============== 4241f35b39SMike Rapoport 4341f35b39SMike Rapoport.. kernel-doc:: include/linux/slab.h 4441f35b39SMike Rapoport :internal: 4541f35b39SMike Rapoport 4641f35b39SMike Rapoport.. kernel-doc:: mm/slab.c 4741f35b39SMike Rapoport :export: 4841f35b39SMike Rapoport 4954a67c75SMike Rapoport.. kernel-doc:: mm/slab_common.c 5054a67c75SMike Rapoport :export: 5154a67c75SMike Rapoport 5241f35b39SMike Rapoport.. kernel-doc:: mm/util.c 5341f35b39SMike Rapoport :functions: kfree_const kvmalloc_node kvfree 5441f35b39SMike Rapoport 552f7e6f6bSMike RapoportVirtually Contiguous Mappings 562f7e6f6bSMike Rapoport============================= 572f7e6f6bSMike Rapoport 582f7e6f6bSMike Rapoport.. kernel-doc:: mm/vmalloc.c 592f7e6f6bSMike Rapoport :export: 602f7e6f6bSMike Rapoport 612f7e6f6bSMike RapoportFile Mapping and Page Cache 622f7e6f6bSMike Rapoport=========================== 6341f35b39SMike Rapoport 6441f35b39SMike Rapoport.. kernel-doc:: mm/readahead.c 6541f35b39SMike Rapoport :export: 6641f35b39SMike Rapoport 6741f35b39SMike Rapoport.. kernel-doc:: mm/filemap.c 6841f35b39SMike Rapoport :export: 6941f35b39SMike Rapoport 7041f35b39SMike Rapoport.. kernel-doc:: mm/page-writeback.c 7141f35b39SMike Rapoport :export: 7241f35b39SMike Rapoport 7341f35b39SMike Rapoport.. kernel-doc:: mm/truncate.c 7441f35b39SMike Rapoport :export: 752f7e6f6bSMike Rapoport 762f7e6f6bSMike RapoportMemory pools 772f7e6f6bSMike Rapoport============ 782f7e6f6bSMike Rapoport 792f7e6f6bSMike Rapoport.. kernel-doc:: mm/mempool.c 802f7e6f6bSMike Rapoport :export: 812f7e6f6bSMike Rapoport 822f7e6f6bSMike RapoportDMA pools 832f7e6f6bSMike Rapoport========= 842f7e6f6bSMike Rapoport 852f7e6f6bSMike Rapoport.. kernel-doc:: mm/dmapool.c 862f7e6f6bSMike Rapoport :export: 872f7e6f6bSMike Rapoport 882f7e6f6bSMike RapoportMore Memory Management Functions 892f7e6f6bSMike Rapoport================================ 902f7e6f6bSMike Rapoport 912f7e6f6bSMike Rapoport.. kernel-doc:: mm/memory.c 922f7e6f6bSMike Rapoport :export: 932f7e6f6bSMike Rapoport 942f7e6f6bSMike Rapoport.. kernel-doc:: mm/page_alloc.c 95