iPXE
Functions
mlx_memory_priv.c File Reference
#include <ipxe/malloc.h>
#include <stddef.h>
#include <byteswap.h>
#include <ipxe/io.h>
#include "../../mlx_utils/include/private/mlx_memory_priv.h"

Go to the source code of this file.

Functions

mlx_status mlx_memory_alloc_priv (IN mlx_utils *utils, IN mlx_size size, OUT mlx_void **ptr)
mlx_status mlx_memory_zalloc_priv (IN mlx_utils *utils, IN mlx_size size, OUT mlx_void **ptr)
mlx_status mlx_memory_free_priv (IN mlx_utils *utils, IN mlx_void *ptr)
mlx_status mlx_memory_alloc_dma_priv (IN mlx_utils *utils, IN mlx_size size, IN mlx_size align, OUT mlx_void **ptr)
mlx_status mlx_memory_free_dma_priv (IN mlx_utils *utils, IN mlx_size size, IN mlx_void *ptr)
mlx_status mlx_memory_map_dma_priv (IN mlx_utils *utils, IN mlx_void *addr, IN mlx_size number_of_bytes, OUT mlx_physical_address *phys_addr, OUT mlx_void **mapping)
mlx_status mlx_memory_ummap_dma_priv (IN mlx_utils *utils, IN mlx_void *mapping)
mlx_status mlx_memory_cmp_priv (IN mlx_utils *utils __attribute__((unused)), IN mlx_void *first_block, IN mlx_void *second_block, IN mlx_size size, OUT mlx_uint32 *out)
mlx_status mlx_memory_set_priv (IN mlx_utils *utils __attribute__((unused)), IN mlx_void *block, IN mlx_int32 value, IN mlx_size size)
mlx_status mlx_memory_cpy_priv (IN mlx_utils *utils __attribute__((unused)), OUT mlx_void *destination_buffer, IN mlx_void *source_buffer, IN mlx_size length)
mlx_status mlx_memory_cpu_to_be32_priv (IN mlx_utils *utils __attribute__((unused)), IN mlx_uint32 source, IN mlx_uint32 *destination)
mlx_status mlx_memory_be32_to_cpu_priv (IN mlx_utils *utils __attribute__((unused)), IN mlx_uint32 source, IN mlx_uint32 *destination)

Function Documentation

mlx_status mlx_memory_alloc_priv ( IN mlx_utils utils,
IN mlx_size  size,
OUT mlx_void **  ptr 
)

Definition at line 16 of file mlx_memory_priv.c.

References malloc(), MLX_OUT_OF_RESOURCES, MLX_SUCCESS, NULL, and status.

Referenced by mlx_memory_alloc().

{
        mlx_status status = MLX_SUCCESS;
        *ptr = malloc(size);
        if(*ptr == NULL){
                status = MLX_OUT_OF_RESOURCES;
        }
        return status;
}
mlx_status mlx_memory_zalloc_priv ( IN mlx_utils utils,
IN mlx_size  size,
OUT mlx_void **  ptr 
)

Definition at line 31 of file mlx_memory_priv.c.

References MLX_OUT_OF_RESOURCES, MLX_SUCCESS, NULL, status, and zalloc().

Referenced by mlx_memory_zalloc().

{
        mlx_status status = MLX_SUCCESS;
        *ptr = zalloc(size);
        if(*ptr == NULL){
                status = MLX_OUT_OF_RESOURCES;
        }
        return status;
}

Definition at line 46 of file mlx_memory_priv.c.

References free, MLX_SUCCESS, and status.

Referenced by mlx_memory_free().

{
        mlx_status status = MLX_SUCCESS;
        free(ptr);
        return status;
}
mlx_status mlx_memory_alloc_dma_priv ( IN mlx_utils utils,
IN mlx_size  size,
IN mlx_size  align,
OUT mlx_void **  ptr 
)

Definition at line 56 of file mlx_memory_priv.c.

References malloc_dma(), memset(), MLX_OUT_OF_RESOURCES, MLX_SUCCESS, NULL, and status.

Referenced by mlx_memory_alloc_dma().

{
        mlx_status status = MLX_SUCCESS;
        *ptr = malloc_dma(size, align);
        if (*ptr == NULL) {
                status = MLX_OUT_OF_RESOURCES;
        } else {
                memset(*ptr, 0, size);
        }
        return status;
}

Definition at line 74 of file mlx_memory_priv.c.

References free_dma(), MLX_SUCCESS, and status.

Referenced by mlx_memory_free_dma().

mlx_status mlx_memory_map_dma_priv ( IN mlx_utils utils,
IN mlx_void addr,
IN mlx_size  number_of_bytes,
OUT mlx_physical_address phys_addr,
OUT mlx_void **  mapping 
)

Definition at line 85 of file mlx_memory_priv.c.

References MLX_SUCCESS, status, and virt_to_bus().

Referenced by mlx_memory_map_dma().

{
        mlx_status status = MLX_SUCCESS;
        *phys_addr = virt_to_bus(addr);
        return status;
}

Definition at line 99 of file mlx_memory_priv.c.

References MLX_SUCCESS, and status.

Referenced by mlx_memory_ummap_dma().

mlx_status mlx_memory_cmp_priv ( IN mlx_utils *utils   __attribute__(unused),
IN mlx_void first_block,
IN mlx_void second_block,
IN mlx_size  size,
OUT mlx_uint32 out 
)

Definition at line 109 of file mlx_memory_priv.c.

References memcmp(), MLX_SUCCESS, and status.

{
        mlx_status status = MLX_SUCCESS;
        *out = memcmp(first_block, second_block, size);
        return status;
}
mlx_status mlx_memory_set_priv ( IN mlx_utils *utils   __attribute__(unused),
IN mlx_void block,
IN mlx_int32  value,
IN mlx_size  size 
)

Definition at line 123 of file mlx_memory_priv.c.

References memset(), MLX_SUCCESS, and status.

mlx_status mlx_memory_cpy_priv ( IN mlx_utils *utils   __attribute__(unused),
OUT mlx_void destination_buffer,
IN mlx_void source_buffer,
IN mlx_size  length 
)

Definition at line 136 of file mlx_memory_priv.c.

References memcpy(), MLX_SUCCESS, and status.

{
        mlx_status status = MLX_SUCCESS;
        memcpy(destination_buffer, source_buffer, length);
        return status;
}
mlx_status mlx_memory_cpu_to_be32_priv ( IN mlx_utils *utils   __attribute__(unused),
IN mlx_uint32  source,
IN mlx_uint32 destination 
)

Definition at line 149 of file mlx_memory_priv.c.

References cpu_to_be32, MLX_SUCCESS, and status.

{
        mlx_status status = MLX_SUCCESS;
        *destination = cpu_to_be32(source);
        return status;
}
mlx_status mlx_memory_be32_to_cpu_priv ( IN mlx_utils *utils   __attribute__(unused),
IN mlx_uint32  source,
IN mlx_uint32 destination 
)

Definition at line 162 of file mlx_memory_priv.c.

References be32_to_cpu, MLX_SUCCESS, and status.

{
        mlx_status status = MLX_SUCCESS;
        *destination = be32_to_cpu(source);
        return status;
}