jmcneill@ wrote:

> On Wed, 31 Oct 2018, Taylor R Campbell wrote:
> 
> > For the moment, as a provisional workaround to make progress, you can
> > probably get by with `pa << PGSHIFT', where pa is the physical (byte)
> 
> I think this should be `pa >> PGSHIFT`, or even better use `atop(pa)`.

Some MACHINE_ARCHs use paddr_t for an mmap cookie:

https://nxr.netbsd.org/xref/src/sys/dev/usb/udl.c?r=1.22#675
---
675     /* XXX we need MI paddr_t -> mmap cookie API */
676 #if defined(__aarch64__)
677 #define PTOMMAP(paddr)      aarch64_btop((char *)paddr)
678 #elif defined(__alpha__)
679 #define PTOMMAP(paddr)      alpha_btop((char *)paddr)
680 #elif defined(__arm__)
681 #define PTOMMAP(paddr)      arm_btop((u_long)paddr)
682 #elif defined(__hppa__)
683 #define PTOMMAP(paddr)      btop((u_long)paddr)
684 #elif defined(__i386__) || defined(__x86_64__)
685 #define PTOMMAP(paddr)      x86_btop(paddr)
686 #elif defined(__m68k__)
687 #define PTOMMAP(paddr)      m68k_btop((char *)paddr)
688 #elif defined(__mips__)
689 #define PTOMMAP(paddr)      mips_btop(paddr)
690 #elif defined(__powerpc__)
691 #define PTOMMAP(paddr)      (paddr)
692 #elif defined(__sh__)
693 #define PTOMMAP(paddr)      sh3_btop(paddr)
694 #elif defined(__sparc__)
695 #define PTOMMAP(paddr)      (paddr)
696 #elif defined(__sparc64__)
697 #define PTOMMAP(paddr)      atop(paddr)
698 #elif defined(__vax__)
699 #define PTOMMAP(paddr)      btop((u_int)paddr)
700 #endif
701 
702     return PTOMMAP(paddr);
---
Izumi Tsutsui

Reply via email to