Path: utzoo!censor!comspec!lethe!torsqnt!news-server.csri.toronto.edu!bonnie.concordia.ca!clyde.concordia.ca!nstn.ns.ca!news.cs.indiana.edu!att!ucbvax!IGOR.TAMRI.COM!rickm From: rickm@IGOR.TAMRI.COM (Rick marsh) Newsgroups: comp.sys.sgi Subject: Help needed with device driver Message-ID: <9102142334.AA03699@igor.tamri.com> Date: 14 Feb 91 23:34:13 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 27 Some questions that relate to a device driver that I need to write. It will run initially on a Personal Iris. 1. We need to translate virtual addresses to physical addresses, in order to do dma transfers. The only routine that appears to do this is kvtophys(), this translates kernel virtual addresses to physical addresses. Is there a routine that translates user virtual addresses to physical addresses ? 2. If there is not, and we are forced to use kvtophys(), is there a routine that maps user virtual memory to kernel virtual memory ? It appears that physio() does this but we don't want to call physio() because it does several other things that we do not need (We don't want to do the dma transfer at the time that we do the virtual to physical translation). 3. mpin() locks pages into physical memory, is it at all possible that a page, once locked, would be moved around in memory? We intend to do the dma transfer some time after doing the virtual to physical translation and moving pages would be a disaster. Any advice will be appreciated. Rick Marsh Toshiba America MRI Inc. (415) 872-2722 ext. 2226 rickm@tamri.com