Date: Tue, 2 Mar 1999 16:40:03 -0800 (PST) From: Matthew Dillon <dillon@apollo.backplane.com> To: "AARON MARKS" <amarks@sarnoff.com> Cc: hackers@FreeBSD.ORG Subject: Re: getpages() for a memory-based fs Message-ID: <199903030040.QAA59228@apollo.backplane.com> References: <36DC669B.707C33C7@sarnoff.com>
next in thread | previous in thread | raw e-mail | index | archive | help
:I'm working on the getpages() routine for a memory-based fs and I don't :quite understand how to map my page(s) to kernel vm via the vm_page :struct. What's the formal method of copying data to a vm page? : :Thanks, :-A. : :-- :Aaron J. Marks Communications and Computing Systems Lab :Assoc. Member Tech Staff Advanced Networks and Computation Group :amarks@sarnoff.com Sarnoff Corporation A vm_page_t is not mapped. Typically you map it by allocating a physical buffer with getpbuf() and mapping up to MAXBSIZE bytes worth of pages into it's reserved KVM space using pmap_qenter(). You must, of course, undo the mappings when finished with them. For an eample if how to do this, look at swap_pager_getpages() in vm/swap_pager.c from FreeBSD-current ( i.e. the -4.x tree, not the -3.x tree. The -3.x version of the function is not very readable ). There are kernel support routines to zero pages, copy pages ( see uiomove, uiomoveco ), and so forth but I think you will be happier using a pbuf. -Matt Matthew Dillon <dillon@backplane.com> To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199903030040.QAA59228>