1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
/*
* Copyright 2007 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
*/
#ifndef _SYS_DDI_OBSOLETE_H
#define _SYS_DDI_OBSOLETE_H
#pragma ident "%Z%%M% %I% %E% SMI"
/*
* Obsoleted DDI Interfaces
*/
#include <sys/types.h>
#include <sys/dditypes.h>
#include <sys/sunldi.h>
#ifdef __cplusplus
extern "C" {
#endif
/*
* The following are intentionally outside of _DDI_STRICT, they are obsolete
* and shouldn't be used by drivers, but are still used in the consolidation.
* e.g. DDI implementation.
*/
int ddi_iomin(dev_info_t *dip, int initial, int streaming);
#ifndef _DDI_STRICT
int ddi_dma_setup(dev_info_t *dip, struct ddi_dma_req *dmareqp,
ddi_dma_handle_t *handlep);
int ddi_dma_addr_setup(dev_info_t *dip, struct as *as, caddr_t addr, size_t len,
uint_t flags, int (*waitfp)(), caddr_t arg, ddi_dma_lim_t *limits,
ddi_dma_handle_t *handlep);
int ddi_dma_buf_setup(dev_info_t *dip, struct buf *bp, uint_t flags,
int (*waitfp)(), caddr_t arg, ddi_dma_lim_t *limits,
ddi_dma_handle_t *handlep);
int ddi_dma_kvaddrp(ddi_dma_handle_t, off_t, size_t, caddr_t *);
int ddi_dma_htoc(ddi_dma_handle_t handle, off_t off, ddi_dma_cookie_t *cookiep);
int ddi_dma_coff(ddi_dma_handle_t handle, ddi_dma_cookie_t *cookiep,
off_t *offp);
int ddi_dma_curwin(ddi_dma_handle_t handle, off_t *offp, size_t *lenp);
int ddi_dma_nextwin(ddi_dma_handle_t, ddi_dma_win_t, ddi_dma_win_t *);
int ddi_dma_nextseg(ddi_dma_win_t, ddi_dma_seg_t, ddi_dma_seg_t *);
int ddi_dma_segtocookie(ddi_dma_seg_t, off_t *, off_t *, ddi_dma_cookie_t *);
int ddi_dma_free(ddi_dma_handle_t handle);
int ddi_iopb_alloc(dev_info_t *dip, ddi_dma_lim_t *limits, uint_t length,
caddr_t *iopbp);
void ddi_iopb_free(caddr_t iopb);
int ddi_mem_alloc(dev_info_t *dip, ddi_dma_lim_t *limits, uint_t length,
uint_t flags, caddr_t *kaddrp, uint_t *real_length);
void ddi_mem_free(caddr_t kaddr);
int ddi_dma_get_attr(ddi_dma_handle_t handle, ddi_dma_attr_t *attrp);
int ddi_dma_devalign(ddi_dma_handle_t handle, uint_t *alignment,
uint_t *mineffect);
void ddi_dmalim_merge(ddi_dma_lim_t *limit, ddi_dma_lim_t *modifier);
#if defined(__sparc)
int ddi_dma_movwin(ddi_dma_handle_t, off_t *offp, size_t *lenp,
ddi_dma_cookie_t *);
#endif
uint8_t ddi_mem_get8(ddi_acc_handle_t handle, uint8_t *host_addr);
uint16_t ddi_mem_get16(ddi_acc_handle_t handle, uint16_t *host_addr);
uint32_t ddi_mem_get32(ddi_acc_handle_t handle, uint32_t *host_addr);
uint64_t ddi_mem_get64(ddi_acc_handle_t handle, uint64_t *host_addr);
void ddi_mem_put8(ddi_acc_handle_t handle, uint8_t *dev_addr, uint8_t value);
void ddi_mem_put16(ddi_acc_handle_t handle, uint16_t *dev_addr, uint16_t value);
void ddi_mem_put32(ddi_acc_handle_t handle, uint32_t *dev_addr, uint32_t value);
void ddi_mem_put64(ddi_acc_handle_t handle, uint64_t *dev_addr, uint64_t value);
void ddi_mem_rep_get8(ddi_acc_handle_t handle, uint8_t *host_addr,
uint8_t *dev_addr, size_t repcount, uint_t flags);
void ddi_mem_rep_get16(ddi_acc_handle_t handle, uint16_t *host_addr,
uint16_t *dev_addr, size_t repcount, uint_t flags);
void ddi_mem_rep_get32(ddi_acc_handle_t handle, uint32_t *host_addr,
uint32_t *dev_addr, size_t repcount, uint_t flags);
void ddi_mem_rep_get64(ddi_acc_handle_t handle, uint64_t *host_addr,
uint64_t *dev_addr, size_t repcount, uint_t flags);
void ddi_mem_rep_put8(ddi_acc_handle_t handle, uint8_t *host_addr,
uint8_t *dev_addr, size_t repcount, uint_t flags);
void ddi_mem_rep_put16(ddi_acc_handle_t handle, uint16_t *host_addr,
uint16_t *dev_addr, size_t repcount, uint_t flags);
void ddi_mem_rep_put32(ddi_acc_handle_t handle, uint32_t *host_addr,
uint32_t *dev_addr, size_t repcount, uint_t flags);
void ddi_mem_rep_put64(ddi_acc_handle_t handle, uint64_t *host_addr,
uint64_t *dev_addr, size_t repcount, uint_t flags);
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);
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);
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);
void ddi_io_rep_put8(ddi_acc_handle_t handle,
uint8_t *host_addr, uint8_t *dev_addr, size_t repcount);
void ddi_io_rep_put16(ddi_acc_handle_t handle,
uint16_t *host_addr, uint16_t *dev_addr, size_t repcount);
void ddi_io_rep_put32(ddi_acc_handle_t handle,
uint32_t *host_addr, uint32_t *dev_addr, size_t repcount);
/* only support older interfaces on 32-bit systems */
#ifdef _ILP32
#define ddi_mem_getb ddi_mem_get8
#define ddi_mem_getw ddi_mem_get16
#define ddi_mem_getl ddi_mem_get32
#define ddi_mem_getll ddi_mem_get64
#define ddi_mem_rep_getb ddi_mem_rep_get8
#define ddi_mem_rep_getw ddi_mem_rep_get16
#define ddi_mem_rep_getl ddi_mem_rep_get32
#define ddi_mem_rep_getll ddi_mem_rep_get64
#define ddi_mem_putb ddi_mem_put8
#define ddi_mem_putw ddi_mem_put16
#define ddi_mem_putl ddi_mem_put32
#define ddi_mem_putll ddi_mem_put64
#define ddi_mem_rep_putb ddi_mem_rep_put8
#define ddi_mem_rep_putw ddi_mem_rep_put16
#define ddi_mem_rep_putl ddi_mem_rep_put32
#define ddi_mem_rep_putll ddi_mem_rep_put64
#define ddi_io_getb ddi_io_get8
#define ddi_io_getw ddi_io_get16
#define ddi_io_getl ddi_io_get32
#define ddi_io_putb ddi_io_put8
#define ddi_io_putw ddi_io_put16
#define ddi_io_putl ddi_io_put32
#define ddi_getb ddi_get8
#define ddi_getw ddi_get16
#define ddi_getl ddi_get32
#define ddi_getll ddi_get64
#define ddi_rep_getb ddi_rep_get8
#define ddi_rep_getw ddi_rep_get16
#define ddi_rep_getl ddi_rep_get32
#define ddi_rep_getll ddi_rep_get64
#define ddi_putb ddi_put8
#define ddi_putw ddi_put16
#define ddi_putl ddi_put32
#define ddi_putll ddi_put64
#define ddi_rep_putb ddi_rep_put8
#define ddi_rep_putw ddi_rep_put16
#define ddi_rep_putl ddi_rep_put32
#define ddi_rep_putll ddi_rep_put64
/* These can't be define's since they're not asm routines */
void ddi_io_rep_getb(ddi_acc_handle_t handle, uint8_t *host_addr,
uint8_t *dev_addr, size_t repcount);
void ddi_io_rep_getw(ddi_acc_handle_t handle, uint16_t *host_addr,
uint16_t *dev_addr, size_t repcount);
void ddi_io_rep_getl(ddi_acc_handle_t handle, uint32_t *host_addr,
uint32_t *dev_addr, size_t repcount);
void ddi_io_rep_putb(ddi_acc_handle_t handle, uint8_t *host_addr,
uint8_t *dev_addr, size_t repcount);
void ddi_io_rep_putw(ddi_acc_handle_t handle, uint16_t *host_addr,
uint16_t *dev_addr, size_t repcount);
void ddi_io_rep_putl(ddi_acc_handle_t handle, uint32_t *host_addr,
uint32_t *dev_addr, size_t repcount);
int ddi_peekc(dev_info_t *dip, int8_t *addr, int8_t *val_p);
int ddi_peeks(dev_info_t *dip, int16_t *addr, int16_t *val_p);
int ddi_peekl(dev_info_t *dip, int32_t *addr, int32_t *val_p);
int ddi_peekd(dev_info_t *dip, int64_t *addr, int64_t *val_p);
int ddi_pokec(dev_info_t *dip, int8_t *addr, int8_t val);
int ddi_pokes(dev_info_t *dip, int16_t *addr, int16_t val);
int ddi_pokel(dev_info_t *dip, int32_t *addr, int32_t val);
int ddi_poked(dev_info_t *dip, int64_t *addr, int64_t val);
uint8_t pci_config_getb(ddi_acc_handle_t handle, off_t offset);
uint16_t pci_config_getw(ddi_acc_handle_t handle, off_t offset);
uint32_t pci_config_getl(ddi_acc_handle_t handle, off_t offset);
uint64_t pci_config_getll(ddi_acc_handle_t handle, off_t offset);
void pci_config_putb(ddi_acc_handle_t handle, off_t offset, uint8_t value);
void pci_config_putw(ddi_acc_handle_t handle, off_t offset, uint16_t value);
void pci_config_putl(ddi_acc_handle_t handle, off_t offset, uint32_t value);
void pci_config_putll(ddi_acc_handle_t handle, off_t offset, uint64_t value);
extern void repinsb(int port, uint8_t *addr, int count);
extern void repinsw(int port, uint16_t *addr, int count);
extern void repinsd(int port, uint32_t *addr, int count);
extern void repoutsb(int port, uint8_t *addr, int count);
extern void repoutsw(int port, uint16_t *addr, int count);
extern void repoutsd(int port, uint32_t *addr, int count);
#endif
/* Obsolete LDI event interfaces */
extern int ldi_get_eventcookie(ldi_handle_t, char *,
ddi_eventcookie_t *);
extern int ldi_add_event_handler(ldi_handle_t, ddi_eventcookie_t,
void (*handler)(ldi_handle_t, ddi_eventcookie_t, void *, void *),
void *, ldi_callback_id_t *);
extern int ldi_remove_event_handler(ldi_handle_t, ldi_callback_id_t);
#endif /* not _DDI_STRICT */
#ifdef __cplusplus
}
#endif
#endif /* _SYS_DDI_OBSOLETE_H */
|