150 heci_attach, /* attach */
151 heci_detach, /* detach */
152 nodev, /* reset */
153 &heci_cb_ops, /* Driver Ops */
154 (struct bus_ops *)NULL, /* Bus Operations */
155 NULL, /* power */
156 heci_quiesce /* devo_quiesce */
157 };
158
159 /*
160 * Module linkage information for the kernel
161 */
162
163 static struct modldrv modldrv = {
164 &mod_driverops, /* Type of Module = Driver */
165 heci_driver_string, /* Driver Identifier string. */
166 &heci_dev_ops, /* Driver Ops. */
167 };
168
169 static struct modlinkage modlinkage = {
170 MODREV_1, (void *)&modldrv, NULL
171 };
172
173 /*
174 * Module Initialization functions.
175 */
176
177 int
178 _init(void)
179 {
180 int stat;
181
182 /* Allocate soft state */
183 if ((stat = ddi_soft_state_init(&heci_soft_state_p,
184 sizeof (struct iamt_heci_device), 1)) != DDI_SUCCESS) {
185 return (stat);
186 }
187
188 if ((stat = mod_install(&modlinkage)) != 0)
189 ddi_soft_state_fini(&heci_soft_state_p);
190
|
150 heci_attach, /* attach */
151 heci_detach, /* detach */
152 nodev, /* reset */
153 &heci_cb_ops, /* Driver Ops */
154 (struct bus_ops *)NULL, /* Bus Operations */
155 NULL, /* power */
156 heci_quiesce /* devo_quiesce */
157 };
158
159 /*
160 * Module linkage information for the kernel
161 */
162
163 static struct modldrv modldrv = {
164 &mod_driverops, /* Type of Module = Driver */
165 heci_driver_string, /* Driver Identifier string. */
166 &heci_dev_ops, /* Driver Ops. */
167 };
168
169 static struct modlinkage modlinkage = {
170 MODREV_1, { (void *)&modldrv, NULL }
171 };
172
173 /*
174 * Module Initialization functions.
175 */
176
177 int
178 _init(void)
179 {
180 int stat;
181
182 /* Allocate soft state */
183 if ((stat = ddi_soft_state_init(&heci_soft_state_p,
184 sizeof (struct iamt_heci_device), 1)) != DDI_SUCCESS) {
185 return (stat);
186 }
187
188 if ((stat = mod_install(&modlinkage)) != 0)
189 ddi_soft_state_fini(&heci_soft_state_p);
190
|