@"Memory Management" @(parent := kernel_feature) def memory_subsystem(): """ Config the memory subsystem """ @"Physical Memory" def physical_mm(): """ Physical memory manager """ @flag def pmalloc_method_simple() -> bool: return pmalloc_method.val == "simple" @flag def pmalloc_method_buddy() -> bool: return pmalloc_method.val == "buddy" @flag def pmalloc_method_ncontig() -> bool: return pmalloc_method.val == "ncontig" @"Allocation policy" def pmalloc_method() -> "simple" | "buddy" | "ncontig": """ Allocation policy for phiscal memory """ return "simple" @"PMalloc Thresholds" def pmalloc_simple_po_thresholds(): require(pmalloc_method_simple) @"Maximum cached order-0 free pages" def pmalloc_simple_max_po0() -> int: """ free list capacity for order-0 pages """ return 4096 @"Maximum cached order-1 free pages" def pmalloc_simple_max_po1() -> int: """ free list capacity for order-1 pages """ return 2048 @"Maximum cached order-2 free pages" def pmalloc_simple_max_po2() -> int: """ free list capacity for order-2 pages """ return 2048 @"Maximum cached order-3 free pages" def pmalloc_simple_max_po3() -> int: """ free list capacity for order-3 pages """ return 2048 @"Maximum cached order-4 free pages" def pmalloc_simple_max_po4() -> int: """ free list capacity for order-4 pages """ return 512 @"Maximum cached order-5 free pages" def pmalloc_simple_max_po5() -> int: """ free list capacity for order-5 pages """ return 512 @"Maximum cached order-6 free pages" def pmalloc_simple_max_po6() -> int: """ free list capacity for order-6 pages """ return 128 @"Maximum cached order-7 free pages" def pmalloc_simple_max_po7() -> int: """ free list capacity for order-7 pages """ return 128 @"Maximum cached order-8 free pages" def pmalloc_simple_max_po8() -> int: """ free list capacity for order-8 pages """ return 64 @"Maximum cached order-9 free pages" def pmalloc_simple_max_po9() -> int: """ free list capacity for order-9 pages """ return 32