Print this page
6154 const-ify segment ops structures


 702 #define DMAOBJ_PP_OFF   dmao_ogj.pp_obj.pp_offset
 703 #define ALO             dma_lim->dlim_addr_lo
 704 #define AHI             dma_lim->dlim_addr_hi
 705 #define OBJSIZE         dmareq->dmar_object.dmao_size
 706 #define ORIGVADDR       dmareq->dmar_object.dmao_obj.virt_obj.v_addr
 707 #define RED             ((mp->dmai_rflags & DDI_DMA_REDZONE)? 1 : 0)
 708 #define DIRECTION       (mp->dmai_rflags & DDI_DMA_RDWR)
 709 
 710 /*
 711  * rootnex_map_fault:
 712  *
 713  *      fault in mappings for requestors
 714  */
 715 
 716 /*ARGSUSED*/
 717 static int
 718 rootnex_map_fault(dev_info_t *dip, dev_info_t *rdip,
 719     struct hat *hat, struct seg *seg, caddr_t addr,
 720     struct devpage *dp, pfn_t pfn, uint_t prot, uint_t lock)
 721 {
 722         extern struct seg_ops segdev_ops;
 723 
 724         DPRINTF(ROOTNEX_MAP_DEBUG, ("rootnex_map_fault: address <%p> "
 725             "pfn <%lx>", (void *)addr, pfn));
 726         DPRINTF(ROOTNEX_MAP_DEBUG, (" Seg <%s>\n",
 727             seg->s_ops == &segdev_ops ? "segdev" :
 728             seg == &kvseg ? "segkmem" : "NONE!"));
 729 
 730         /*
 731          * This is all terribly broken, but it is a start
 732          *
 733          * XXX  Note that this test means that segdev_ops
 734          *      must be exported from seg_dev.c.
 735          * XXX  What about devices with their own segment drivers?
 736          */
 737         if (seg->s_ops == &segdev_ops) {
 738                 register struct segdev_data *sdp =
 739                     (struct segdev_data *)seg->s_data;
 740 
 741                 if (hat == NULL) {
 742                         /*




 702 #define DMAOBJ_PP_OFF   dmao_ogj.pp_obj.pp_offset
 703 #define ALO             dma_lim->dlim_addr_lo
 704 #define AHI             dma_lim->dlim_addr_hi
 705 #define OBJSIZE         dmareq->dmar_object.dmao_size
 706 #define ORIGVADDR       dmareq->dmar_object.dmao_obj.virt_obj.v_addr
 707 #define RED             ((mp->dmai_rflags & DDI_DMA_REDZONE)? 1 : 0)
 708 #define DIRECTION       (mp->dmai_rflags & DDI_DMA_RDWR)
 709 
 710 /*
 711  * rootnex_map_fault:
 712  *
 713  *      fault in mappings for requestors
 714  */
 715 
 716 /*ARGSUSED*/
 717 static int
 718 rootnex_map_fault(dev_info_t *dip, dev_info_t *rdip,
 719     struct hat *hat, struct seg *seg, caddr_t addr,
 720     struct devpage *dp, pfn_t pfn, uint_t prot, uint_t lock)
 721 {
 722         extern const struct seg_ops segdev_ops;
 723 
 724         DPRINTF(ROOTNEX_MAP_DEBUG, ("rootnex_map_fault: address <%p> "
 725             "pfn <%lx>", (void *)addr, pfn));
 726         DPRINTF(ROOTNEX_MAP_DEBUG, (" Seg <%s>\n",
 727             seg->s_ops == &segdev_ops ? "segdev" :
 728             seg == &kvseg ? "segkmem" : "NONE!"));
 729 
 730         /*
 731          * This is all terribly broken, but it is a start
 732          *
 733          * XXX  Note that this test means that segdev_ops
 734          *      must be exported from seg_dev.c.
 735          * XXX  What about devices with their own segment drivers?
 736          */
 737         if (seg->s_ops == &segdev_ops) {
 738                 register struct segdev_data *sdp =
 739                     (struct segdev_data *)seg->s_data;
 740 
 741                 if (hat == NULL) {
 742                         /*