ddi_regs_map_setup(9f) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

ddi_regs_map_setup(9f)

ddi_regs_map_setup(9F)         Kernel Functions         ddi_regs_map_setup(9F)



NAME
       ddi_regs_map_setup - set up a mapping for a register address space

SYNOPSIS
       #include <sys/ddi.h>
       #include <sys/sunddi.h>

       int ddi_regs_map_setup(dev_info_t *dip, uint_t rnumber, caddr_t *addrp,
            offset_t offset, offset_t len, ddi_device_acc_attr_t *accattrp,
            ddi_acc_handle_t *handlep);

INTERFACE LEVEL
       Solaris DDI specific (Solaris DDI).

PARAMETERS
       dip         Pointer to the device's dev_info structure.


       rnumber     Index  number to the register address space set. A value of
                   0 indicates PCI configuration space, while  a  value  of  1
                   indicates the real start of device register sets.


       addrp       A  platform-dependent  value  that, when added to an offset
                   that is less than  or  equal  to  the  len  parameter  (see
                   below),  is  used for the dev_addr argument to the ddi_get,
                   ddi_mem_get, and ddi_io_get/put routines.


       offset      Offset into the register address space.


       len         Length to be mapped.


       accattrp    Pointer to a device access attribute structure of this map‐
                   ping (see ddi_device_acc_attr(9S)).


       handlep     Pointer to a data access handle.


DESCRIPTION
       ddi_regs_map_setup()  maps  in  the  register set given by rnumber. The
       register number determines which register set is mapped  if  more  than
       one exists.


       offset  specifies  the  starting location within the register space and
       len indicates the size of the area to be mapped. If len is non-zero, it
       overrides the length given in the register set description. If both len
       and offset are 0, the entire space is mapped. The base  of  the  mapped
       register space is returned in addrp.


       The  device  access attributes are specified in the location pointed by
       the accattrp argument (see ddi_device_acc_attr(9S) for details).


       The data access handle is returned in handlep. handlep is opaque; driv‐
       ers  should  not  attempt to interpret its value. The handle is used by
       the system to encode information for subsequent  data  access  function
       calls to maintain a consistent view between the host and the device.

RETURN VALUES
       ddi_regs_map_setup() returns:

       DDI_SUCCESS              Successfully  set  up  the  mapping  for  data
                                access.


       DDI_FAILURE              Invalid register number rnumber,  offset  off‐
                                set, or length len.


       DDI_ME_RNUMBER_RANGE     Invalid  register  number rnumber or unable to
                                find reg property.


       DDI_REGS_ACC_CONFLICT    Cannot enable  the  register  mapping  due  to
                                access conflicts with other enabled mappings.



       Note that the return value DDI_ME_RNUMBER_RANGE is not supported on all
       platforms.  Also,  there  is  potential  overlap  between  DDI_ME_RNUM‐
       BER_RANGE  and  DDI_FAILURE.  Drivers  should  check  for !=DDI_SUCCESS
       rather than checking for a specific failure value.

CONTEXT
       ddi_regs_map_setup() must be called from user or kernel context.

ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE VALUE _ ArchitecturePCI Local Bus, SBus, ISA


SEE ALSO
       attributes(7), ddi_regs_map_free(9F), ddi_device_acc_attr(9S)


       Writing Device Drivers in Oracle Solaris 11.4



Oracle Solaris 11.4               16 Dec 2011           ddi_regs_map_setup(9F)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3