Print this page
patch lower-case-segops


 273 
 274         if (devload)
 275                 hat_unload(kas.a_hat, mm_map, PAGESIZE, HAT_UNLOAD_UNLOCK);
 276         else if (pp)
 277                 hat_kpm_mapout(pp, NULL, va);
 278         else
 279                 hat_kpm_mapout_pfn(pfn);
 280 
 281         mutex_exit(&mm_lock);
 282         return (error);
 283 }
 284 
 285 static int
 286 mmpagelock(struct as *as, caddr_t va)
 287 {
 288         struct seg *seg;
 289         int i;
 290 
 291         AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
 292         seg = as_segat(as, va);
 293         i = (seg != NULL)? SEGOP_CAPABLE(seg, S_CAPABILITY_NOMINFLT) : 0;
 294         AS_LOCK_EXIT(as, &as->a_lock);
 295 
 296         return (i);
 297 }
 298 
 299 #ifdef  __sparc
 300 
 301 #define NEED_LOCK_KVADDR(kva)   mmpagelock(&kas, kva)
 302 
 303 #else   /* __i386, __amd64 */
 304 
 305 #define NEED_LOCK_KVADDR(va)    0
 306 
 307 #endif  /* __sparc */
 308 
 309 /*ARGSUSED3*/
 310 static int
 311 mmrw(dev_t dev, struct uio *uio, enum uio_rw rw, cred_t *cred)
 312 {
 313         pfn_t v;




 273 
 274         if (devload)
 275                 hat_unload(kas.a_hat, mm_map, PAGESIZE, HAT_UNLOAD_UNLOCK);
 276         else if (pp)
 277                 hat_kpm_mapout(pp, NULL, va);
 278         else
 279                 hat_kpm_mapout_pfn(pfn);
 280 
 281         mutex_exit(&mm_lock);
 282         return (error);
 283 }
 284 
 285 static int
 286 mmpagelock(struct as *as, caddr_t va)
 287 {
 288         struct seg *seg;
 289         int i;
 290 
 291         AS_LOCK_ENTER(as, &as->a_lock, RW_READER);
 292         seg = as_segat(as, va);
 293         i = (seg != NULL)? segop_capable(seg, S_CAPABILITY_NOMINFLT) : 0;
 294         AS_LOCK_EXIT(as, &as->a_lock);
 295 
 296         return (i);
 297 }
 298 
 299 #ifdef  __sparc
 300 
 301 #define NEED_LOCK_KVADDR(kva)   mmpagelock(&kas, kva)
 302 
 303 #else   /* __i386, __amd64 */
 304 
 305 #define NEED_LOCK_KVADDR(va)    0
 306 
 307 #endif  /* __sparc */
 308 
 309 /*ARGSUSED3*/
 310 static int
 311 mmrw(dev_t dev, struct uio *uio, enum uio_rw rw, cred_t *cred)
 312 {
 313         pfn_t v;