/*
 * Copyright (c) 2026, Chloe M.
 * Provided under the BSD-3 clause.
 *
 * Description:  Physical memory management
 * Author:       Chloe M.
 */

#ifndef _MM_PMM_H_
#define _MM_PMM_H_ 1

#include <stdef.h>

/* Page frame number */
typedef UQUAD MM_PFN;

/*
 * Initialize the physical memory management
 */
VOID MmInitPmm(VOID);

/*
 * Request a single frame of memory
 *
 * Returns the page frame number on success, otherwise
 * zero on failure e.g., out of memory
 */
MM_PFN MmRequestFrame(VOID);

#endif  /* !_MM_PMM_H_ */
