iPXE
Defines | Functions
umalloc.h File Reference

User memory allocation. More...

#include <ipxe/api.h>
#include <config/umalloc.h>
#include <ipxe/uaccess.h>
#include <ipxe/efi/efi_umalloc.h>
#include <ipxe/linux/linux_umalloc.h>
#include <bits/umalloc.h>

Go to the source code of this file.

Defines

#define PROVIDE_UMALLOC(_subsys, _api_func, _func)   PROVIDE_SINGLE_API ( UMALLOC_PREFIX_ ## _subsys, _api_func, _func )
 Provide a user memory allocation API implementation.

Functions

 FILE_LICENCE (GPL2_OR_LATER_OR_UBDL)
userptr_t urealloc (userptr_t userptr, size_t new_size)
 Reallocate external memory.
static __always_inline userptr_t umalloc (size_t size)
 Allocate external memory.
static __always_inline void ufree (userptr_t userptr)
 Free external memory.

Detailed Description

User memory allocation.

Definition in file umalloc.h.


Define Documentation

#define PROVIDE_UMALLOC (   _subsys,
  _api_func,
  _func 
)    PROVIDE_SINGLE_API ( UMALLOC_PREFIX_ ## _subsys, _api_func, _func )

Provide a user memory allocation API implementation.

Parameters:
_prefixSubsystem prefix
_api_funcAPI function
_funcImplementing function

Definition at line 24 of file umalloc.h.


Function Documentation

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL  )
userptr_t urealloc ( userptr_t  userptr,
size_t  new_size 
)

Reallocate external memory.

Parameters:
userptrMemory previously allocated by umalloc(), or UNULL
new_sizeRequested size
Return values:
userptrAllocated memory, or UNULL

Calling realloc() with a new size of zero is a valid way to free a memory block.

Referenced by ufree(), umalloc(), umalloc_test(), and xferbuf_umalloc_realloc().

static __always_inline userptr_t umalloc ( size_t  size) [inline, static]

Allocate external memory.

Parameters:
sizeRequested size
Return values:
userptrMemory, or UNULL

Memory is guaranteed to be aligned to a page boundary.

Definition at line 54 of file umalloc.h.

References UNULL, and urealloc().

Referenced by alloc_pixbuf(), arbel_alloc_icm(), arbel_start_firmware(), efifb_glyphs(), exanic_probe_port(), fbcon_init(), fbcon_picture_init(), golan_provide_pages(), hermon_map_icm(), hermon_start_firmware(), initrd_init(), netvsc_create_buffer(), nii_initialise_flags(), png_image_header(), txnic_alloc(), umalloc_test(), and xhci_scratchpad_alloc().

                                                                {
        return urealloc ( UNULL, size );
}
static __always_inline void ufree ( userptr_t  userptr) [inline, static]