51 {VNIC_IOC_CREATE, DLDCOPYINOUT, sizeof (vnic_ioc_create_t),
52 vnic_ioc_create, secpolicy_dl_config},
53 {VNIC_IOC_DELETE, DLDCOPYIN, sizeof (vnic_ioc_delete_t),
54 vnic_ioc_delete, secpolicy_dl_config},
55 {VNIC_IOC_INFO, DLDCOPYINOUT, sizeof (vnic_ioc_info_t),
56 vnic_ioc_info, NULL},
57 {VNIC_IOC_MODIFY, DLDCOPYIN, sizeof (vnic_ioc_modify_t),
58 vnic_ioc_modify, secpolicy_dl_config}
59 };
60
61 DDI_DEFINE_STREAM_OPS(vnic_dev_ops, nulldev, nulldev, vnic_attach, vnic_detach,
62 nodev, vnic_getinfo, D_MP, NULL, ddi_quiesce_not_supported);
63
64 static struct modldrv vnic_modldrv = {
65 &mod_driverops, /* Type of module. This one is a driver */
66 VNIC_LINKINFO, /* short description */
67 &vnic_dev_ops /* driver specific ops */
68 };
69
70 static struct modlinkage modlinkage = {
71 MODREV_1, &vnic_modldrv, NULL
72 };
73
74 int
75 _init(void)
76 {
77 int status;
78
79 mac_init_ops(&vnic_dev_ops, "vnic");
80 status = mod_install(&modlinkage);
81 if (status != DDI_SUCCESS)
82 mac_fini_ops(&vnic_dev_ops);
83
84 return (status);
85 }
86
87 int
88 _fini(void)
89 {
90 int status;
91
|
51 {VNIC_IOC_CREATE, DLDCOPYINOUT, sizeof (vnic_ioc_create_t),
52 vnic_ioc_create, secpolicy_dl_config},
53 {VNIC_IOC_DELETE, DLDCOPYIN, sizeof (vnic_ioc_delete_t),
54 vnic_ioc_delete, secpolicy_dl_config},
55 {VNIC_IOC_INFO, DLDCOPYINOUT, sizeof (vnic_ioc_info_t),
56 vnic_ioc_info, NULL},
57 {VNIC_IOC_MODIFY, DLDCOPYIN, sizeof (vnic_ioc_modify_t),
58 vnic_ioc_modify, secpolicy_dl_config}
59 };
60
61 DDI_DEFINE_STREAM_OPS(vnic_dev_ops, nulldev, nulldev, vnic_attach, vnic_detach,
62 nodev, vnic_getinfo, D_MP, NULL, ddi_quiesce_not_supported);
63
64 static struct modldrv vnic_modldrv = {
65 &mod_driverops, /* Type of module. This one is a driver */
66 VNIC_LINKINFO, /* short description */
67 &vnic_dev_ops /* driver specific ops */
68 };
69
70 static struct modlinkage modlinkage = {
71 MODREV_1, { &vnic_modldrv, NULL }
72 };
73
74 int
75 _init(void)
76 {
77 int status;
78
79 mac_init_ops(&vnic_dev_ops, "vnic");
80 status = mod_install(&modlinkage);
81 if (status != DDI_SUCCESS)
82 mac_fini_ops(&vnic_dev_ops);
83
84 return (status);
85 }
86
87 int
88 _fini(void)
89 {
90 int status;
91
|