52 /*
53 * device operations
54 */
55 static int urtw_attach(dev_info_t *, ddi_attach_cmd_t);
56 static int urtw_detach(dev_info_t *, ddi_detach_cmd_t);
57
58 /*
59 * Module Loading Data & Entry Points
60 */
61 DDI_DEFINE_STREAM_OPS(urtw_dev_ops, nulldev, nulldev, urtw_attach,
62 urtw_detach, nodev, NULL, D_MP, NULL, ddi_quiesce_not_needed);
63
64 static struct modldrv urtw_modldrv = {
65 &mod_driverops, /* Type of module. This one is a driver */
66 "RTL8187L/B driver v1.2", /* short description */
67 &urtw_dev_ops /* driver specific ops */
68 };
69
70 static struct modlinkage modlinkage = {
71 MODREV_1,
72 (void *)&urtw_modldrv,
73 NULL
74 };
75
76 static int urtw_m_stat(void *, uint_t, uint64_t *);
77 static int urtw_m_start(void *);
78 static void urtw_m_stop(void *);
79 static int urtw_m_promisc(void *, boolean_t);
80 static int urtw_m_multicst(void *, boolean_t, const uint8_t *);
81 static int urtw_m_unicst(void *, const uint8_t *);
82 static mblk_t *urtw_m_tx(void *, mblk_t *);
83 static void urtw_m_ioctl(void *, queue_t *, mblk_t *);
84 static int urtw_m_setprop(void *, const char *, mac_prop_id_t,
85 uint_t, const void *);
86 static int urtw_m_getprop(void *, const char *, mac_prop_id_t,
87 uint_t, void *);
88 static void urtw_m_propinfo(void *, const char *, mac_prop_id_t,
89 mac_prop_info_handle_t);
90
91 static mac_callbacks_t urtw_m_callbacks = {
92 MC_IOCTL | MC_SETPROP | MC_GETPROP | MC_PROPINFO,
93 urtw_m_stat,
|
52 /*
53 * device operations
54 */
55 static int urtw_attach(dev_info_t *, ddi_attach_cmd_t);
56 static int urtw_detach(dev_info_t *, ddi_detach_cmd_t);
57
58 /*
59 * Module Loading Data & Entry Points
60 */
61 DDI_DEFINE_STREAM_OPS(urtw_dev_ops, nulldev, nulldev, urtw_attach,
62 urtw_detach, nodev, NULL, D_MP, NULL, ddi_quiesce_not_needed);
63
64 static struct modldrv urtw_modldrv = {
65 &mod_driverops, /* Type of module. This one is a driver */
66 "RTL8187L/B driver v1.2", /* short description */
67 &urtw_dev_ops /* driver specific ops */
68 };
69
70 static struct modlinkage modlinkage = {
71 MODREV_1,
72 { (void *)&urtw_modldrv, NULL }
73 };
74
75 static int urtw_m_stat(void *, uint_t, uint64_t *);
76 static int urtw_m_start(void *);
77 static void urtw_m_stop(void *);
78 static int urtw_m_promisc(void *, boolean_t);
79 static int urtw_m_multicst(void *, boolean_t, const uint8_t *);
80 static int urtw_m_unicst(void *, const uint8_t *);
81 static mblk_t *urtw_m_tx(void *, mblk_t *);
82 static void urtw_m_ioctl(void *, queue_t *, mblk_t *);
83 static int urtw_m_setprop(void *, const char *, mac_prop_id_t,
84 uint_t, const void *);
85 static int urtw_m_getprop(void *, const char *, mac_prop_id_t,
86 uint_t, void *);
87 static void urtw_m_propinfo(void *, const char *, mac_prop_id_t,
88 mac_prop_info_handle_t);
89
90 static mac_callbacks_t urtw_m_callbacks = {
91 MC_IOCTL | MC_SETPROP | MC_GETPROP | MC_PROPINFO,
92 urtw_m_stat,
|