168 rpcib_detach, /* detach */
169 nodev, /* reset */
170 &rpcib_cbops, /* driver ops - devctl interfaces */
171 NULL, /* bus operations */
172 NULL, /* power */
173 ddi_quiesce_not_needed, /* quiesce */
174 };
175
176 /*
177 * Module linkage information.
178 */
179
180 static struct modldrv rib_modldrv = {
181 &mod_driverops, /* Driver module */
182 "RPCIB plugin driver", /* Driver name and version */
183 &rpcib_ops, /* Driver ops */
184 };
185
186 static struct modlinkage rib_modlinkage = {
187 MODREV_1,
188 (void *)&rib_modldrv,
189 NULL
190 };
191
192 typedef struct rib_lrc_entry {
193 struct rib_lrc_entry *forw;
194 struct rib_lrc_entry *back;
195 char *lrc_buf;
196
197 uint32_t lrc_len;
198 void *avl_node;
199 bool_t registered;
200
201 struct mrc lrc_mhandle;
202 bool_t lrc_on_freed_list;
203 } rib_lrc_entry_t;
204
205 typedef struct cache_struct {
206 rib_lrc_entry_t r;
207 uint32_t len;
208 uint32_t elements;
209 kmutex_t node_lock;
|
168 rpcib_detach, /* detach */
169 nodev, /* reset */
170 &rpcib_cbops, /* driver ops - devctl interfaces */
171 NULL, /* bus operations */
172 NULL, /* power */
173 ddi_quiesce_not_needed, /* quiesce */
174 };
175
176 /*
177 * Module linkage information.
178 */
179
180 static struct modldrv rib_modldrv = {
181 &mod_driverops, /* Driver module */
182 "RPCIB plugin driver", /* Driver name and version */
183 &rpcib_ops, /* Driver ops */
184 };
185
186 static struct modlinkage rib_modlinkage = {
187 MODREV_1,
188 { (void *)&rib_modldrv, NULL }
189 };
190
191 typedef struct rib_lrc_entry {
192 struct rib_lrc_entry *forw;
193 struct rib_lrc_entry *back;
194 char *lrc_buf;
195
196 uint32_t lrc_len;
197 void *avl_node;
198 bool_t registered;
199
200 struct mrc lrc_mhandle;
201 bool_t lrc_on_freed_list;
202 } rib_lrc_entry_t;
203
204 typedef struct cache_struct {
205 rib_lrc_entry_t r;
206 uint32_t len;
207 uint32_t elements;
208 kmutex_t node_lock;
|