ddi_io_rep_put16(9F)




NAME

     ddi_io_rep_put8,     ddi_io_rep_put16,     ddi_io_rep_put32,
     ddi_io_rep_putw,  ddi_io_rep_putl,  ddi_io_rep_putb  - write
     multiple data to the mapped device register in I/O space


SYNOPSIS

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

     void   ddi_io_rep_put8(ddi_acc_handle_t   handle,    uint8_t
     *host_addr, uin8_t *dev_addr, size_t repcount);

     void  ddi_io_rep_put16(ddi_acc_handle_t   handle,   uint16_t
     *host_addr, uin16_t *dev_addr, size_t repcount);

     void  ddi_io_rep_put32(ddi_acc_handle_t   handle,   uint32_t
     *host_addr, uin32_t *dev_addr, size_t repcount);


INTERFACE LEVEL

     Solaris DDI specific (Solaris DDI).


PARAMETERS

     handle
           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.


DESCRIPTION

     These  routines  generate  multiple  writes  to  the  device
     address,  dev_address, in I/O space. repcount data is copied
     from the host address, host_addr,  to  the  device  address,
     dev_addr.  For  each  input  datum,  the  ddi_io_rep_put8(),
     ddi_io_rep_put16(), and ddi_io_rep_put32() functions write 8
     bits,  16  bits,  and  32 bits of data, respectively, to the
     device address. host_addr must be aligned to the datum boun-
     dary 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.


CONTEXT

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


SEE ALSO

     isa(4),          ddi_io_get8(9F),           ddi_io_put8(9F),
     ddi_io_rep_get8(9F),                 ddi_regs_map_setup(9F),
     ddi_device_acc_attr(9S)


NOTES

     For drivers using these functions, it may  not  be  easy  to
     maintain  a  single  source to support devices with multiple
     bus versions.  For example, devices may offer I/O  space  in
     ISA  bus  (see   isa(4)) but memory space only in  PCI local
     bus.  This is especially true in instruction  set  architec-
     tures   such  as  x86  where  accesses to the memory and I/O
     space are different.

     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_io_rep_putb      ddi_io_rep_put8                         |
    | ddi_io_rep_putw      ddi_io_rep_put16                        |
    | ddi_io_rep_putl      ddi_io_rep_put32                        |
    |______________________________________________________________|


Man(1) output converted with man2html