ddi_poke(9F)




NAME

     ddi_poke,  ddi_poke8,  ddi_poke16,  ddi_poke32,  ddi_poke64,
     ddi_pokec,  ddi_pokes,  ddi_pokel, ddi_poked - write a value
     to a location


SYNOPSIS

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

     int ddi_poke8(dev_info_t *dip, int8_t *addr, int8_t value);

     int  ddi_poke16(dev_info_t  *dip,  int16_t  *addr,   int16_t
     value);

     int  ddi_poke32(dev_info_t  *dip,  int32_t  *addr,   int32_t
     value);

     int  ddi_poke64(dev_info_t  *dip,  int64_t  *addr,   int64_t
     value);


INTERFACE LEVEL

     Solaris  DDI  specific  (Solaris  DDI).   The   ddi_pokec(),
     ddi_pokes(),  ddi_pokel(),  and  ddi_poked()  functions  are
     obsolete.  Use,  respectively,  ddi_poke8(),   ddi_poke16(),
     ddi_poke32(), and ddi_poke64(), instead.


PARAMETERS

     dip   A pointer to the device's dev_info structure.

     addr  Virtual address of the location to be written to.

     value Value to be written to the location.


DESCRIPTION

     These routines cautiously attempt to  write  a  value  to  a
     specified  virtual address, using the parent nexus driver to
     assist in the process where necessary.

     If the address is not valid, or the value cannot be  written
     without an error occurring, an error code is returned.

     These routines are most useful when first trying  to  estab-
     lish  the  presence  of  a  given  device on the system in a
     driver's probe(9E) or attach(9E) routines.

     On multiprocessing machines these routines can be  extremely
     heavy-weight,  so  use  the ddi_peek(9F) routines instead if
     possible.


RETURN VALUES

     DDI_SUCCESS
           The  value  was  successfully  written  to  the  given
           virtual address.

     DDI_FAILURE
           An error occurred while trying to write to  the  loca-
           tion.


CONTEXT

     These functions can be called from user  or  interrupt  con-
     text.


SEE ALSO

     attach(9E), probe(9E), ddi_peek(9F)

     Writing Device Drivers


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_pokec            ddi_poke8                   |
    |          ddi_pokes            ddi_poke16                  |
    |          ddi_pokel            ddi_poke32                  |
    |          ddi_poked            ddi_poke64                  |
    |___________________________________________________________|


Man(1) output converted with man2html