ddi_mem_rep_getw(9F)




NAME

     ddi_mem_rep_get8,   ddi_mem_rep_get16,    ddi_mem_rep_get32,
     ddi_mem_rep_get64,    ddi_mem_rep_getw,    ddi_mem_rep_getl,
     ddi_mem_rep_getll, ddi_mem_rep_getb  -  read  multiple  data
     from  mapped  device  in  the  memory space or allocated DMA
     memory


SYNOPSIS

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

     void   ddi_mem_rep_get8(ddi_acc_handle_t   handle,   uint8_t
     *host_addr,   uint8_t  *dev_addr,  size_t  repcount,  uint_t
     flags);

     void  ddi_mem_rep_get16(ddi_acc_handle_t  handle,   uint16_t
     *host_addr,  uint16_t  *dev_addr,  size_t  repcount,  uint_t
     flags);

     void  ddi_mem_rep_get32(ddi_acc_handle_t  handle,   uint32_t
     *host_addr,  uint32_t  *dev_addr,  size_t  repcount,  uint_t
     flags);

     void  ddi_mem_rep_get64(ddi_acc_handle_t  handle,   uint64_t
     *host_addr,  uint64_t  *dev_addr,  size_t  repcount,  uint_t
     flags);


INTERFACE LEVEL

     Solaris DDI specific (Solaris DDI).


PARAMETERS

      handle
           The data access handle returned from setup calls, such
           as  ddi_regs_map_setup(9F).

     host_addr
           Base host address.

     dev_addr
           Base device address.

     repcount
           Number of data accesses to perform.

     flags Device address flags:

           DDI_DEV_AUTOINCR
                 Automatically  increment  the  device   address,
                 dev_addr, during data accesses.

           DDI_DEV_NO_AUTOINCR
                 Do not advance the  device  address,   dev_addr,
                 during data accesses.


DESCRIPTION

     These routines generate multiple reads from memory space  or
     allocated  DMA memory. repcount data is copied from the dev-
     ice address, dev_addr, in memory space to the host  address,
     host_addr.  For  each  input  datum, the ddi_mem_rep_get8(),
     ddi_mem_rep_get16(),        ddi_mem_rep_get32(),         and
     ddi_mem_rep_get64()  functions read 8 bits, 16 bits, 32 bits
     and 64 bits of data, respectively, from the device  address,
     dev_addr.  dev_addr  and  host_addr  must  be aligned to the
     datum boundary described by the function.

     Each individual datum will automatically  be  translated  to
     maintain  a  consistent view between the host and the device
     based on the encoded information in the data access  handle.
     The  translation  may  involve byte-swapping if the host and
     the device have incompatible endian characteristics.

     When the  flags argument is set to  DDI_DEV_AUTOINCR,  these
     functions  will  treat  the  device  address, dev_addr, as a
     memory buffer location  on the  device  and  increments  its
     address  on  the  next input datum. However, when the  flags
     argument is set  to  DDI_DEV_NO_AUTOINCR,  the  same  device
     address  will  be  used for every datum access. For example,
     this flag may be useful when reading from a data register.


CONTEXT

     These functions can be called from user, kernel,  or  inter-
     rupt context.


SEE ALSO

     ddi_mem_get8(9F),  ddi_mem_put8(9F),   ddi_mem_rep_put8(9F),
     ddi_regs_map_setup(9F), ddi_device_acc_attr(9S)


NOTES

     The functions described in this manual page previously  used
     symbolic  names  which specified their data access size; the
     function names have been  changed  so  they  now  specify  a
     fixed-width  data  size. See the following table for the new
     name equivalents:

     ____________________________________________________________
    | Previous Name                 New Name                    |
    | ddi_mem_rep_getb              ddi_mem_rep_get8            |
    | ddi_mem_rep_getw              ddi_mem_rep_get16           |
    | ddi_mem_rep_getl              ddi_mem_rep_get32           |
    | ddi_mem_rep_getll             ddi_mem_rep_get64           |
    |___________________________________________________________|


Man(1) output converted with man2html