ddi_io_putl(9F)




NAME

     ddi_io_put8,   ddi_io_put16,   ddi_io_put32,    ddi_io_putw,
     ddi_io_putl,  ddi_io_putb  - write data to the mapped device
     register in I/O space


SYNOPSIS

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

     void    ddi_io_put8(ddi_acc_handle_t    handle,      uint8_t
     *dev_addr, uint8_t value);

     void    ddi_io_put16(ddi_acc_handle_t    handle,    uint16_t
     *dev_addr, uint16_t value);

     void   ddi_io_put32(ddi_acc_handle_t    handle,     uint32_t
     *dev_addr, uint32_t value);


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
           Base device address.

     value Data to be written to the device.


DESCRIPTION

     These routines generate a write  of  various  sizes  to  the
     device  address,  dev_addr, in I/O space. The ddi_io_put8(),
     ddi_io_put16(), and ddi_io_put32() functions write  8  bits,
     16  bits,   and 32 bits of data, respectively, to 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_get8(9F),         ddi_io_rep_get8(9F),
     ddi_io_rep_put8(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_putb                     ddi_io_put8               |
    | ddi_io_putw                     ddi_io_put16              |
    | ddi_io_putl                     ddi_io_put32              |
    |___________________________________________________________|


Man(1) output converted with man2html