Physical memory is managed a single page at a time.
Currently, there is no way of allocating multiple contiguous pages. If contiguous memory larger than a page is required, then you must allocate that in virtual memory using an anonymous virtual memory segment, and physical memory will be allocated on demand as virtual pages are referenced.
This can complicate things like large I/O transfers, which must be either done page based, or use scatter/gather DMA, if supported, by the device doing the I/O.
- page_alloc - Allocates a single physical page, returning a page handle (which in reality, is a physical page number.)