ddi_io_getw(9F)




NAME

     ddi_io_get8,   ddi_io_get16,   ddi_io_get32,    ddi_io_getb,
     ddi_io_getw,  ddi_io_getl - read data from the mapped device
     register in I/O space


SYNOPSIS

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

     uint8_t   ddi_io_get8(ddi_acc_handle_t    handle,    uint8_t
     *dev_addr);

     uint16_t  ddi_io_get16(ddi_acc_handle_t   handle,   uint16_t
     *dev_addr);

     uint32_t  ddi_io_get32(ddi_acc_handle_t   handle,   uint32_t
     *dev_addr);


INTERFACE LEVEL

     Solaris DDI specific (Solaris DDI).


PARAMETERS

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

     dev_addr
           Device address.


DESCRIPTION

     These routines generate a read of  various  sizes  from  the
     device  address,  dev_addr, in I/O space. The ddi_io_get8(),
     ddi_io_get16(), and ddi_io_get32() functions read 8 bits, 16
     bits,  and  32  bits  of data, respectively, from the device
     address, dev_addr.

     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_put8(9F),         ddi_io_rep_get8(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  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_getb          ddi_io_get8                             |
    | ddi_io_getw          ddi_io_get16                            |
    | ddi_io_getl          ddi_io_get32                            |
    |______________________________________________________________|


Man(1) output converted with man2html