293 inhm_mc_getinfo, /* devo_getinfo */
294 nulldev, /* devo_identify */
295 nulldev, /* devo_probe */
296 inhm_mc_attach, /* devo_attach */
297 inhm_mc_detach, /* devo_detach */
298 nodev, /* devo_reset */
299 &inhm_mc_cb_ops, /* devo_cb_ops */
300 NULL, /* devo_bus_ops */
301 NULL, /* devo_power */
302 ddi_quiesce_not_needed, /* devo_quiesce */
303 };
304
305 static struct modldrv modldrv = {
306 &mod_driverops,
307 "Intel QuickPath Memory Controller Hub Module",
308 &inhm_mc_ops
309 };
310
311 static struct modlinkage modlinkage = {
312 MODREV_1,
313 (void *)&modldrv,
314 NULL
315 };
316
317 int
318 _init(void)
319 {
320 int err;
321
322 err = nhm_init();
323 if (err == 0 && (err = mod_install(&modlinkage)) == 0) {
324 rw_init(&inhm_mc_lock, NULL, RW_DRIVER, NULL);
325 init_dimms();
326 }
327
328 return (err);
329 }
330
331 int
332 _info(struct modinfo *modinfop)
333 {
334 return (mod_info(&modlinkage, modinfop));
|
293 inhm_mc_getinfo, /* devo_getinfo */
294 nulldev, /* devo_identify */
295 nulldev, /* devo_probe */
296 inhm_mc_attach, /* devo_attach */
297 inhm_mc_detach, /* devo_detach */
298 nodev, /* devo_reset */
299 &inhm_mc_cb_ops, /* devo_cb_ops */
300 NULL, /* devo_bus_ops */
301 NULL, /* devo_power */
302 ddi_quiesce_not_needed, /* devo_quiesce */
303 };
304
305 static struct modldrv modldrv = {
306 &mod_driverops,
307 "Intel QuickPath Memory Controller Hub Module",
308 &inhm_mc_ops
309 };
310
311 static struct modlinkage modlinkage = {
312 MODREV_1,
313 { (void *)&modldrv, NULL }
314 };
315
316 int
317 _init(void)
318 {
319 int err;
320
321 err = nhm_init();
322 if (err == 0 && (err = mod_install(&modlinkage)) == 0) {
323 rw_init(&inhm_mc_lock, NULL, RW_DRIVER, NULL);
324 init_dimms();
325 }
326
327 return (err);
328 }
329
330 int
331 _info(struct modinfo *modinfop)
332 {
333 return (mod_info(&modlinkage, modinfop));
|