// SPDX-License-Identifier: GPL-2.0-or-later /* * Test memory functions * * Copyright (c) 2025 Heinrich Schuchardt */ #include #include #include #include static int lib_test_efi_alloc_aligned_pages(struct unit_test_state *uts) { efi_status_t ret; void *addr; unsigned long align = 0x400000; addr = efi_alloc_aligned_pages(4096, EFI_PERSISTENT_MEMORY_TYPE, EFI_PAGE_SIZE); ut_asserteq_ptr(NULL, addr); addr = efi_alloc_aligned_pages(4096, 0x6FFFFFFF, EFI_PAGE_SIZE); ut_asserteq_ptr(NULL, addr); align = 0x200; addr = efi_alloc_aligned_pages(4096, EFI_ACPI_RECLAIM_MEMORY, align); ut_assertnonnull(addr); ut_asserteq_64(0, (uintptr_t)addr & (align - 1)); ret = efi_free_pages((uintptr_t) addr, 1); ut_asserteq_64(ret, EFI_SUCCESS); align = 0x400000; addr = efi_alloc_aligned_pages(4096, EFI_ACPI_RECLAIM_MEMORY, align); ut_assertnonnull(addr); ut_asserteq_64(0, (uintptr_t)addr & (align - 1)); ret = efi_free_pages((uintptr_t) addr, 1); ut_asserteq_64(ret, EFI_SUCCESS); return 0; } LIB_TEST(lib_test_efi_alloc_aligned_pages, 0); static int lib_test_efi_allocate_pages(struct unit_test_state *uts) { efi_status_t ret; u64 memory; ret = efi_allocate_pages(EFI_ALLOCATE_ANY_PAGES, EFI_ACPI_RECLAIM_MEMORY, 1, &memory); ut_asserteq_64(ret, EFI_SUCCESS); ut_asserteq_64(0, memory & EFI_PAGE_MASK); ret = efi_free_pages(memory, 1); ut_asserteq_64(ret, EFI_SUCCESS); return 0; } LIB_TEST(lib_test_efi_allocate_pages, 0);