| /* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ | |
| /* | |
| * Copyright (c) 2018-2025 Advanced Micro Devices, Inc. All rights reserved. | |
| */ | |
| #ifndef IONIC_MEMORY_H | |
| #define IONIC_MEMORY_H | |
| #include <stdlib.h> | |
| /** | |
| * ionic_map_anon() - Allocate page-aligned anonymous memory | |
| * @size: Size to allocate | |
| * | |
| * Return: pointer to first page of memory, or NULL | |
| */ | |
| void *ionic_map_anon(size_t size); | |
| /** | |
| * ionic_map_device() - Map device memory via fd and offset | |
| * @size: Size to map | |
| * @fd: File descriptor representing the device context | |
| * @offset: Offset provided by the kernel as a handle for the mapping | |
| * | |
| * The mapping may be write-only, and may use write-combining. | |
| * | |
| * Return: pointer to first page of the mapping, or NULL | |
| */ | |
| void *ionic_map_device(size_t size, int fd, size_t offset); | |
| /** | |
| * ionic_unmap() - Unmap anonymous or device memory | |
| * @ptr: Pointer to the first page, or NULL (do nothing) | |
| * @size: Size of the map | |
| */ | |
| void ionic_unmap(void *ptr, size_t size); | |
| #endif /* IONIC_MEMORY_H */ |