ddi_rep_putll(9F)




NAME

     ddi_rep_put8, ddi_rep_put16,  ddi_rep_put32,  ddi_rep_put64,
     ddi_rep_putb,  ddi_rep_putw,  ddi_rep_putl,  ddi_rep_putll -
     write data to the mapped memory address, device register  or
     allocated DMA memory address


SYNOPSIS

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

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

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

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

     void   ddi_rep_put64(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 writes to the mapped memory
     or  device  register.  repcount data is copied from the host
     address,  host_addr, to the device address,   dev_addr.  For
     each  input  datum,  the   ddi_rep_put8(),  ddi_rep_put16(),
     ddi_rep_put32(), and ddi_rep_put64() functions write 8 bits,
     16 bits, 32 bits, and 64 bits of data, respectively,  to 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  treat  the device address,  dev_addr, as a memory
     buffer location  on the device and increment 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 writing to a data register.


CONTEXT

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


SEE ALSO

     ddi_get8(9F),      ddi_put8(9F),      ddi_regs_map_free(9F),
     ddi_regs_map_setup(9F),                    ddi_rep_get8(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_rep_putb                 | ddi_rep_put8               |
    | ddi_rep_putw                 | ddi_rep_put16              |
    | ddi_rep_putl                 | ddi_rep_put32              |
    | ddi_rep_putll                | ddi_rep_put64              |
    |______________________________|____________________________|


Man(1) output converted with man2html