162 /*
163 * device operations
164 */
165 static int uath_attach(dev_info_t *, ddi_attach_cmd_t);
166 static int uath_detach(dev_info_t *, ddi_detach_cmd_t);
167
168 /*
169 * Module Loading Data & Entry Points
170 */
171 DDI_DEFINE_STREAM_OPS(uath_dev_ops, nulldev, nulldev, uath_attach,
172 uath_detach, nodev, NULL, D_MP, NULL, ddi_quiesce_not_needed);
173
174 static struct modldrv uath_modldrv = {
175 &mod_driverops, /* Type of module. This one is a driver */
176 "Atheros AR5523 USB Driver v1.1", /* short description */
177 &uath_dev_ops /* driver specific ops */
178 };
179
180 static struct modlinkage modlinkage = {
181 MODREV_1,
182 (void *)&uath_modldrv,
183 NULL
184 };
185
186 static int uath_m_stat(void *, uint_t, uint64_t *);
187 static int uath_m_start(void *);
188 static void uath_m_stop(void *);
189 static int uath_m_promisc(void *, boolean_t);
190 static int uath_m_multicst(void *, boolean_t, const uint8_t *);
191 static int uath_m_unicst(void *, const uint8_t *);
192 static mblk_t *uath_m_tx(void *, mblk_t *);
193 static void uath_m_ioctl(void *, queue_t *, mblk_t *);
194 static int uath_m_setprop(void *, const char *, mac_prop_id_t,
195 uint_t, const void *);
196 static int uath_m_getprop(void *, const char *, mac_prop_id_t,
197 uint_t, void *);
198 static void uath_m_propinfo(void *, const char *, mac_prop_id_t,
199 mac_prop_info_handle_t);
200
201 static mac_callbacks_t uath_m_callbacks = {
202 MC_IOCTL | MC_SETPROP | MC_GETPROP | MC_PROPINFO,
203 uath_m_stat,
|
162 /*
163 * device operations
164 */
165 static int uath_attach(dev_info_t *, ddi_attach_cmd_t);
166 static int uath_detach(dev_info_t *, ddi_detach_cmd_t);
167
168 /*
169 * Module Loading Data & Entry Points
170 */
171 DDI_DEFINE_STREAM_OPS(uath_dev_ops, nulldev, nulldev, uath_attach,
172 uath_detach, nodev, NULL, D_MP, NULL, ddi_quiesce_not_needed);
173
174 static struct modldrv uath_modldrv = {
175 &mod_driverops, /* Type of module. This one is a driver */
176 "Atheros AR5523 USB Driver v1.1", /* short description */
177 &uath_dev_ops /* driver specific ops */
178 };
179
180 static struct modlinkage modlinkage = {
181 MODREV_1,
182 { (void *)&uath_modldrv, NULL }
183 };
184
185 static int uath_m_stat(void *, uint_t, uint64_t *);
186 static int uath_m_start(void *);
187 static void uath_m_stop(void *);
188 static int uath_m_promisc(void *, boolean_t);
189 static int uath_m_multicst(void *, boolean_t, const uint8_t *);
190 static int uath_m_unicst(void *, const uint8_t *);
191 static mblk_t *uath_m_tx(void *, mblk_t *);
192 static void uath_m_ioctl(void *, queue_t *, mblk_t *);
193 static int uath_m_setprop(void *, const char *, mac_prop_id_t,
194 uint_t, const void *);
195 static int uath_m_getprop(void *, const char *, mac_prop_id_t,
196 uint_t, void *);
197 static void uath_m_propinfo(void *, const char *, mac_prop_id_t,
198 mac_prop_info_handle_t);
199
200 static mac_callbacks_t uath_m_callbacks = {
201 MC_IOCTL | MC_SETPROP | MC_GETPROP | MC_PROPINFO,
202 uath_m_stat,
|