1ddi_poke(9F)             Kernel Functions for Drivers             ddi_poke(9F)
2
3
4

NAME

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

SYNOPSIS

10       #include <sys/ddi.h>
11       #include <sys/sunddi.h>
12
13
14
15       int ddi_poke8(dev_info_t *dip, int8_t *addr, int8_t value);
16
17
18       int ddi_poke16(dev_info_t *dip, int16_t *addr, int16_t value);
19
20
21       int ddi_poke32(dev_info_t *dip, int32_t *addr, int32_t value);
22
23
24       int ddi_poke64(dev_info_t *dip, int64_t *addr, int64_t value);
25
26

INTERFACE LEVEL

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

PARAMETERS

33       dip      A pointer to the device's dev_info structure.
34
35
36       addr     Virtual address of the location to be written to.
37
38
39       value    Value to be written to the location.
40
41

DESCRIPTION

43       These routines cautiously attempt to write a value to a specified  vir‐
44       tual  address,  using  the parent nexus driver to assist in the process
45       where necessary.
46
47
48       If the address is not valid, or the value cannot be written without  an
49       error occurring, an error code is returned.
50
51
52       These routines are most useful when first trying to establish the pres‐
53       ence of a given device  on  the  system  in  a  driver's  probe(9E)  or
54       attach(9E) routines.
55
56
57       On  multiprocessing  machines  these  routines  can be extremely heavy-
58       weight, so use the ddi_peek(9F) routines instead if possible.
59

RETURN VALUES

61       DDI_SUCCESS    The value was successfully written to the given  virtual
62                      address.
63
64
65       DDI_FAILURE    An error occurred while trying to write to the location.
66
67

CONTEXT

69       These functions can be called from user, interrupt, or kernel context.
70

SEE ALSO

72       attach(9E), probe(9E), ddi_peek(9F)
73
74
75       Writing Device Drivers
76

NOTES

78       The  functions  described  in this manual page previously used symbolic
79       names which specified their data access size; the function  names  have
80       been  changed so they now specify a fixed-width data size. See the fol‐
81       lowing table for the new name equivalents:
82
83
84
85
86       ┌───────────────────────────────────────────────────────────┐
87Previous Name                 New Name                     
88ddi_pokec                     ddi_poke8                    
89ddi_pokes                     ddi_poke16                   
90ddi_pokel                     ddi_poke32                   
91ddi_poked                     ddi_poke64                   
92       └───────────────────────────────────────────────────────────┘
93
94
95
96SunOS 5.11                        16 Jan 2006                     ddi_poke(9F)
Impressum