<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <HTML ><HEAD ><TITLE >kmalloc</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.7"><LINK REL="HOME" TITLE="The Linux Kernel API" HREF="book1.html"><LINK REL="UP" TITLE="The Slab Cache" HREF="c2455.html#AEN2457"><LINK REL="PREVIOUS" TITLE="kmem_cache_alloc" HREF="r2587.html"><LINK REL="NEXT" TITLE="kmem_cache_free" HREF="r2664.html"></HEAD ><BODY CLASS="REFENTRY" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >The Linux Kernel API</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="r2587.html" ACCESSKEY="P" ><<< Previous</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="r2664.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="AEN2621" ></A ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >kmalloc</SPAN ></SPAN ></H1 ><DIV CLASS="REFNAMEDIV" ><A NAME="AEN2625" ></A ><H2 >Name</H2 >kmalloc -- allocate memory </DIV ><DIV CLASS="REFSYNOPSISDIV" ><A NAME="AEN2628" ></A ><H2 >Synopsis</H2 ><DIV CLASS="FUNCSYNOPSIS" ><A NAME="AEN2630" ></A ><P ></P ><P ><CODE ><CODE CLASS="FUNCDEF" >void * <TT CLASS="FUNCTION" >kmalloc </TT ></CODE >(size_t <TT CLASS="PARAMETER" ><I >size</I ></TT >, int <TT CLASS="PARAMETER" ><I >flags</I ></TT >);</CODE ></P ><P ></P ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN2638" ></A ><H2 >Arguments</H2 ><P ></P ><DIV CLASS="VARIABLELIST" ><DL ><DT ><TT CLASS="PARAMETER" ><I >size</I ></TT ></DT ><DD ><P > how many bytes of memory are required. </P ></DD ><DT ><TT CLASS="PARAMETER" ><I >flags</I ></TT ></DT ><DD ><P > the type of memory to allocate. </P ></DD ></DL ></DIV ></DIV ><DIV CLASS="REFSECT1" ><A NAME="AEN2651" ></A ><H2 >Description</H2 ><P > kmalloc is the normal method of allocating memory in the kernel. </P ><P > The <TT CLASS="PARAMETER" ><I >flags</I ></TT > argument may be one of: </P ><P > <TT CLASS="CONSTANT" >GFP_USER</TT > - Allocate memory on behalf of user. May sleep. </P ><P > <TT CLASS="CONSTANT" >GFP_KERNEL</TT > - Allocate normal kernel ram. May sleep. </P ><P > <TT CLASS="CONSTANT" >GFP_ATOMIC</TT > - Allocation will not sleep. Use inside interrupt handlers. </P ><P > Additionally, the <TT CLASS="CONSTANT" >GFP_DMA</TT > flag may be set to indicate the memory must be suitable for DMA. This can mean different things on different platforms. For example, on i386, it means that the memory must come from the first 16MB. </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="r2587.html" ACCESSKEY="P" ><<< Previous</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="book1.html" ACCESSKEY="H" >Home</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="r2664.html" ACCESSKEY="N" >Next >>></A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >kmem_cache_alloc</SPAN ></SPAN ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="c2455.html#AEN2457" ACCESSKEY="U" >Up</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><SPAN CLASS="phrase" ><SPAN CLASS="PHRASE" >kmem_cache_free</SPAN ></SPAN ></TD ></TR ></TABLE ></DIV ></BODY ></HTML >