{
for (size_t i = start_ppn; i < start_ppn + page_count && i < max_pg; i++) {
pm_table[i].ref_counts = 0;
{
for (size_t i = start_ppn; i < start_ppn + page_count && i < max_pg; i++) {
pm_table[i].ref_counts = 0;
pmm_alloc_cpage(pid_t owner, size_t num_pages, pp_attr_t attr)
{
size_t p1 = 0;
size_t p2 = 0;
while (p2 < max_pg && p2 - p1 < num_pages) {
pmm_alloc_cpage(pid_t owner, size_t num_pages, pp_attr_t attr)
{
size_t p1 = 0;
size_t p2 = 0;
while (p2 < max_pg && p2 - p1 < num_pages) {
}
pmm_mark_chunk_occupied(owner, p1, num_pages, attr);
}
pmm_mark_chunk_occupied(owner, p1, num_pages, attr);
pmm_alloc_page(pid_t owner, pp_attr_t attr)
{
// Next fit approach. Maximize the throughput!
pmm_alloc_page(pid_t owner, pp_attr_t attr)
{
// Next fit approach. Maximize the throughput!