2820 NULL, /* devo_getinfo */
2821 nulldev, /* devo_identify */
2822 nulldev, /* devo_probe */
2823 i40e_attach, /* devo_attach */
2824 i40e_detach, /* devo_detach */
2825 nodev, /* devo_reset */
2826 &i40e_cb_ops, /* devo_cb_ops */
2827 NULL, /* devo_bus_ops */
2828 ddi_power, /* devo_power */
2829 ddi_quiesce_not_supported /* devo_quiesce */
2830 };
2831
2832 static struct modldrv i40e_modldrv = {
2833 &mod_driverops,
2834 i40e_ident,
2835 &i40e_dev_ops
2836 };
2837
2838 static struct modlinkage i40e_modlinkage = {
2839 MODREV_1,
2840 &i40e_modldrv,
2841 NULL
2842 };
2843
2844 /*
2845 * Module Initialization Functions.
2846 */
2847 int
2848 _init(void)
2849 {
2850 int status;
2851
2852 list_create(&i40e_glist, sizeof (i40e_t), offsetof(i40e_t, i40e_glink));
2853 list_create(&i40e_dlist, sizeof (i40e_device_t),
2854 offsetof(i40e_device_t, id_link));
2855 mutex_init(&i40e_glock, NULL, MUTEX_DRIVER, NULL);
2856 mac_init_ops(&i40e_dev_ops, I40E_MODULE_NAME);
2857
2858 status = mod_install(&i40e_modlinkage);
2859 if (status != DDI_SUCCESS) {
2860 mac_fini_ops(&i40e_dev_ops);
2861 mutex_destroy(&i40e_glock);
|
2820 NULL, /* devo_getinfo */
2821 nulldev, /* devo_identify */
2822 nulldev, /* devo_probe */
2823 i40e_attach, /* devo_attach */
2824 i40e_detach, /* devo_detach */
2825 nodev, /* devo_reset */
2826 &i40e_cb_ops, /* devo_cb_ops */
2827 NULL, /* devo_bus_ops */
2828 ddi_power, /* devo_power */
2829 ddi_quiesce_not_supported /* devo_quiesce */
2830 };
2831
2832 static struct modldrv i40e_modldrv = {
2833 &mod_driverops,
2834 i40e_ident,
2835 &i40e_dev_ops
2836 };
2837
2838 static struct modlinkage i40e_modlinkage = {
2839 MODREV_1,
2840 { &i40e_modldrv, NULL }
2841 };
2842
2843 /*
2844 * Module Initialization Functions.
2845 */
2846 int
2847 _init(void)
2848 {
2849 int status;
2850
2851 list_create(&i40e_glist, sizeof (i40e_t), offsetof(i40e_t, i40e_glink));
2852 list_create(&i40e_dlist, sizeof (i40e_device_t),
2853 offsetof(i40e_device_t, id_link));
2854 mutex_init(&i40e_glock, NULL, MUTEX_DRIVER, NULL);
2855 mac_init_ops(&i40e_dev_ops, I40E_MODULE_NAME);
2856
2857 status = mod_install(&i40e_modlinkage);
2858 if (status != DDI_SUCCESS) {
2859 mac_fini_ops(&i40e_dev_ops);
2860 mutex_destroy(&i40e_glock);
|