Lu Baolu wrote: > On Wed, Dec 3, 2008 at 1:48 AM, Christian Kaiser <[EMAIL PROTECTED]> wrote: >> Hi all, >> >> I am currently porting a driver from Linux to Solaris. >> >> The Linux driver uses amongst others the following functions: >> >> virt_to_phys() >> virt_to_bus() >> phys_to_virt() >> bus_to_virt() >> >> As you can see, these functions translate virtual into physical or bus >> addresses and vice versa. >> Is there something similar available on Solaris? I am currently >> developing on SXCE b103. > > Hi, > > You may refer to the code in rootnex_get_sgl(). You can find samples > there, but they are non-ddi. > > usr/src/uts/i86pc/io/rootnex.c, line 2393 > > 2387 /* > 2388 * rootnex_get_sgl() > 2389 * Called in bind fastpath to get the sgl. Most of this will be > replaced > 2390 * with a call to the vm layer when vm2.0 comes around... > 2391 */ > 2392 static void > 2393 rootnex_get_sgl(ddi_dma_obj_t *dmar_object, ddi_dma_cookie_t *sgl, > 2394 rootnex_sglinfo_t *sglinfo)
Thanks! I found out that hat_getpfnum() is used in rootnex_get_sgl(). I assume that since hat_getkpfnum() (the k makes the difference!) is not available on amd64, hat_getpfnum() (without k!) is the only way to find out the page frame number? Is that correct? Unfortunately, I don't know how the get the "hat" out of a virtual address that would be the first parameter to hat_getpfnum(). In the example it is taken from 'dmar_object' but I don't have such an object in my code. What else can I do? Christian -- Christian Kaiser, Software Engineer, Dolphin Interconnect Solutions http//www.dolphinics.com _______________________________________________ opensolaris-code mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/opensolaris-code
