In article <local.mail.freebsd-hackers/[EMAIL PROTECTED]> you 
write:
>What would be the best way to allocate:
>
>1) a VM page whose physical address falls within a certain boundary, and
>2) a VM object whose pages are contiguous in physical address space?
>
>Background:
>The !@*%^*!&#^%*&!#^$!@ Intel 810/815 graphics controller requires its
>instruction and hardware cursor buffers to reside within first 32MB and
>512MB of *physical* memory space respectively.  :(  :(  ;(  The XFree86
>driver assumes the Linux memory model (virtual addr == physical addr),
>so it runs on Linux, but not always on FreeBSD.

You probably want contigmalloc(), which allocates a range of memory
which is physically contiguous.  (assuming this is a in-kernel driver)

void *
contigmalloc(
        unsigned long size,     /* should be size_t here and for malloc() */
        struct malloc_type *type,
        int flags,
        unsigned long low,
        unsigned long high,
        unsigned long alignment,
        unsigned long boundary)

-- 
Jonathan

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to