Print this page
use NULL getmemid segop as a shorthand for ENODEV
Instead of forcing every segment driver to implement a dummy function to
return (hopefully) ENODEV, handle NULL getmemid segop function pointer as
"return ENODEV" shorthand.

*** 75,85 **** static void segnf_dump(struct seg *seg); static int segnf_pagelock(struct seg *seg, caddr_t addr, size_t len, struct page ***ppp, enum lock_type type, enum seg_rw rw); static int segnf_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc); - static int segnf_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp); struct seg_ops segnf_ops = { .dup = segnf_dup, .unmap = segnf_unmap, --- 75,84 ----
*** 102,112 **** .advise = (int (*)(struct seg *, caddr_t, size_t, uint_t)) segnf_nop, .dump = segnf_dump, .pagelock = segnf_pagelock, .setpagesize = segnf_setpagesize, - .getmemid = segnf_getmemid, }; /* * vnode and page for the page of zeros we use for the nf mappings. */ --- 101,110 ----
*** 463,474 **** segnf_setpagesize(struct seg *seg, caddr_t addr, size_t len, uint_t szc) { return (ENOTSUP); } - - /*ARGSUSED*/ - static int - segnf_getmemid(struct seg *seg, caddr_t addr, memid_t *memidp) - { - return (ENODEV); - } --- 461,465 ----