93 xpvtap_getinfo, /* devo_getinfo */
94 nulldev, /* devo_identify */
95 nulldev, /* devo_probe */
96 xpvtap_attach, /* devo_attach */
97 xpvtap_detach, /* devo_detach */
98 nodev, /* devo_reset */
99 &xpvtap_cb_ops, /* devo_cb_ops */
100 NULL, /* devo_bus_ops */
101 NULL /* power */
102 };
103
104
105 static struct modldrv xpvtap_modldrv = {
106 &mod_driverops, /* Type of module. This one is a driver */
107 "xpvtap driver", /* Name of the module. */
108 &xpvtap_dev_ops, /* driver ops */
109 };
110
111 static struct modlinkage xpvtap_modlinkage = {
112 MODREV_1,
113 (void *) &xpvtap_modldrv,
114 NULL
115 };
116
117
118 void *xpvtap_statep;
119
120
121 static xpvtap_state_t *xpvtap_drv_init(int instance);
122 static void xpvtap_drv_fini(xpvtap_state_t *state);
123 static uint_t xpvtap_intr(caddr_t arg);
124
125 typedef void (*xpvtap_rs_cleanup_t)(xpvtap_state_t *state, uint_t rs);
126 static void xpvtap_rs_init(uint_t min_val, uint_t max_val,
127 xpvtap_rs_hdl_t *handle);
128 static void xpvtap_rs_fini(xpvtap_rs_hdl_t *handle);
129 static int xpvtap_rs_alloc(xpvtap_rs_hdl_t handle, uint_t *rs);
130 static void xpvtap_rs_free(xpvtap_rs_hdl_t handle, uint_t rs);
131 static void xpvtap_rs_flush(xpvtap_rs_hdl_t handle,
132 xpvtap_rs_cleanup_t callback, void *arg);
133
134 static int xpvtap_segmf_register(xpvtap_state_t *state);
|
93 xpvtap_getinfo, /* devo_getinfo */
94 nulldev, /* devo_identify */
95 nulldev, /* devo_probe */
96 xpvtap_attach, /* devo_attach */
97 xpvtap_detach, /* devo_detach */
98 nodev, /* devo_reset */
99 &xpvtap_cb_ops, /* devo_cb_ops */
100 NULL, /* devo_bus_ops */
101 NULL /* power */
102 };
103
104
105 static struct modldrv xpvtap_modldrv = {
106 &mod_driverops, /* Type of module. This one is a driver */
107 "xpvtap driver", /* Name of the module. */
108 &xpvtap_dev_ops, /* driver ops */
109 };
110
111 static struct modlinkage xpvtap_modlinkage = {
112 MODREV_1,
113 { (void *) &xpvtap_modldrv, NULL }
114 };
115
116
117 void *xpvtap_statep;
118
119
120 static xpvtap_state_t *xpvtap_drv_init(int instance);
121 static void xpvtap_drv_fini(xpvtap_state_t *state);
122 static uint_t xpvtap_intr(caddr_t arg);
123
124 typedef void (*xpvtap_rs_cleanup_t)(xpvtap_state_t *state, uint_t rs);
125 static void xpvtap_rs_init(uint_t min_val, uint_t max_val,
126 xpvtap_rs_hdl_t *handle);
127 static void xpvtap_rs_fini(xpvtap_rs_hdl_t *handle);
128 static int xpvtap_rs_alloc(xpvtap_rs_hdl_t handle, uint_t *rs);
129 static void xpvtap_rs_free(xpvtap_rs_hdl_t handle, uint_t rs);
130 static void xpvtap_rs_flush(xpvtap_rs_hdl_t handle,
131 xpvtap_rs_cleanup_t callback, void *arg);
132
133 static int xpvtap_segmf_register(xpvtap_state_t *state);
|