Major contigmalloc() API cleanup:
authorHiten Pandya <hmp@dragonflybsd.org>
Wed, 15 Oct 2003 16:03:04 +0000 (16:03 +0000)
committerHiten Pandya <hmp@dragonflybsd.org>
Wed, 15 Oct 2003 16:03:04 +0000 (16:03 +0000)
commitd1fcdd16c36d64f1ef2df0da9512b3abec1f26c3
treeb595a1d60efc9e10f4f478021945a15635c8b66e
parent475c22b420d87e3a7921ac5a9918b4292caf773d
Major contigmalloc() API cleanup:

    * split the contigmalloc() function into two distinct
      functions:

        - vm_contig_pg_alloc(): this function does the alloc
          of contiguous pages.

        - vm_contig_pg_kmap(): this function maps the allocated
          range of pages into a VM map (i.e. kernel map).

    * remove the duplicated page queue flush management handling
      and put it into a separate function, vm_contig_pg_clean().

The split is important for some special case drivers, which
like to allocated >2G contig memory, and then mmpa(2) it to
userland for various purposes.

By splitting, the contigmalloc/vm_contig_pg API does not
enforce the client to map the contiguous pages into the
KVA, which would have otherwise failed the allocation.

These functions will probably be moved to their own file
some time soon.

Reviewed/Approved/Tested by: Matt Dillon
sys/vm/vm_page.c
sys/vm/vm_page.h