ddi_io_rep_get8(9F)




NAME

     ddi_io_rep_get8,     ddi_io_rep_get16,     ddi_io_rep_get32,
     ddi_io_rep_getw,  ddi_io_rep_getb,  ddi_io_rep_getl  -  read
     multiple data from the mapped device register in I/O space


SYNOPSIS

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

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

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

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


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.


DESCRIPTION

     These routines  generate  multiple  reads  from  the  device
     address,  dev_addr,  in  I/O  space. repcount data is copied
     from the device address,  dev_addr,  to  the  host  address,
     host_addr.  For  each  input  datum,  the ddi_io_rep_get8(),
     ddi_io_rep_get16(), and ddi_io_rep_get32() functions read  8
     bits,  16  bits, and 32 bits of data, respectively, from 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_put8(9F),                  ddi_regs_map_free(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  architectures
     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_getb               ddi_io_rep_get8             |
    | ddi_io_rep_getw               ddi_io_rep_get16            |
    | ddi_io_rep_getl               ddi_io_rep_get32            |
    |___________________________________________________________|


Man(1) output converted with man2html