86 iser_attach, /* attach */
87 iser_detach, /* detach */
88 nodev, /* reset */
89 &iser_cb_ops, /* cb_ops */
90 NULL, /* bus ops */
91 NULL, /* power */
92 ddi_quiesce_not_needed /* quiesce */
93 };
94
95 /* Module Driver Info */
96 #define ISER_NAME_VERSION "iSCSI Extensions for RDMA"
97 static struct modldrv iser_modldrv = {
98 &mod_driverops,
99 ISER_NAME_VERSION,
100 &iser_ops,
101 };
102
103 /* Module Linkage */
104 static struct modlinkage iser_modlinkage = {
105 MODREV_1,
106 &iser_modldrv,
107 NULL
108 };
109
110 /*
111 * _init()
112 */
113 int
114 _init(void)
115 {
116 int status;
117
118 iser_state = kmem_zalloc(sizeof (iser_state_t), KM_SLEEP);
119 status = mod_install(&iser_modlinkage);
120 if (status != DDI_SUCCESS) {
121 kmem_free(iser_state, sizeof (iser_state_t));
122 }
123
124 return (status);
125 }
126
127 /*
|
86 iser_attach, /* attach */
87 iser_detach, /* detach */
88 nodev, /* reset */
89 &iser_cb_ops, /* cb_ops */
90 NULL, /* bus ops */
91 NULL, /* power */
92 ddi_quiesce_not_needed /* quiesce */
93 };
94
95 /* Module Driver Info */
96 #define ISER_NAME_VERSION "iSCSI Extensions for RDMA"
97 static struct modldrv iser_modldrv = {
98 &mod_driverops,
99 ISER_NAME_VERSION,
100 &iser_ops,
101 };
102
103 /* Module Linkage */
104 static struct modlinkage iser_modlinkage = {
105 MODREV_1,
106 { &iser_modldrv, NULL }
107 };
108
109 /*
110 * _init()
111 */
112 int
113 _init(void)
114 {
115 int status;
116
117 iser_state = kmem_zalloc(sizeof (iser_state_t), KM_SLEEP);
118 status = mod_install(&iser_modlinkage);
119 if (status != DDI_SUCCESS) {
120 kmem_free(iser_state, sizeof (iser_state_t));
121 }
122
123 return (status);
124 }
125
126 /*
|