274
275 struct myri10ge_info {
276 struct kstat_named driver_version;
277 struct kstat_named firmware_version;
278 struct kstat_named firmware_name;
279 struct kstat_named interrupt_type;
280 struct kstat_named product_code;
281 struct kstat_named serial_number;
282 };
283
284
285 #define MYRI10GE_NIC_STAT_INC(field) \
286 (((struct myri10ge_nic_stat *)mgp->ksp_stat->ks_data)->field.value.ul)++
287 #define MYRI10GE_SLICE_STAT_INC(field) \
288 (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul)++
289 #define MYRI10GE_SLICE_STAT_ADD(field, val) \
290 (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul) += val
291 #define MYRI10GE_SLICE_STAT_DEC(field) \
292 (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul)--
293 #define MYRI10GE_ATOMIC_SLICE_STAT_INC(field) \
294 atomic_add_long(&(((struct myri10ge_slice_stat *) \
295 ss->ksp_stat->ks_data)->field.value.ul), 1)
296 #define MYRI10GE_ATOMIC_SLICE_STAT_DEC(field) \
297 atomic_add_long(&(((struct myri10ge_slice_stat *) \
298 ss->ksp_stat->ks_data)->field.value.ul), -1)
299 #define MYRI10GE_SLICE_STAT(field) \
300 (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul)
301
302
303 struct myri10ge_tx_copybuf
304 {
305 caddr_t va;
306 int len;
307 struct myri10ge_dma_stuff dma;
308 };
309
310 typedef struct
311 {
312 mcp_kreq_ether_recv_t *lanai; /* lanai ptr for recv ring */
313 mcp_kreq_ether_recv_t *shadow; /* host shadow of recv ring */
314 struct myri10ge_rx_buffer_state *info;
315 int cnt;
316 int alloc_fail;
317 int mask; /* number of rx slots -1 */
318 boolean_t polling;
|
274
275 struct myri10ge_info {
276 struct kstat_named driver_version;
277 struct kstat_named firmware_version;
278 struct kstat_named firmware_name;
279 struct kstat_named interrupt_type;
280 struct kstat_named product_code;
281 struct kstat_named serial_number;
282 };
283
284
285 #define MYRI10GE_NIC_STAT_INC(field) \
286 (((struct myri10ge_nic_stat *)mgp->ksp_stat->ks_data)->field.value.ul)++
287 #define MYRI10GE_SLICE_STAT_INC(field) \
288 (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul)++
289 #define MYRI10GE_SLICE_STAT_ADD(field, val) \
290 (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul) += val
291 #define MYRI10GE_SLICE_STAT_DEC(field) \
292 (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul)--
293 #define MYRI10GE_ATOMIC_SLICE_STAT_INC(field) \
294 atomic_inc_ulong(&(((struct myri10ge_slice_stat *) \
295 ss->ksp_stat->ks_data)->field.value.ul))
296 #define MYRI10GE_ATOMIC_SLICE_STAT_DEC(field) \
297 atomic_dec_ulong(&(((struct myri10ge_slice_stat *) \
298 ss->ksp_stat->ks_data)->field.value.ul))
299 #define MYRI10GE_SLICE_STAT(field) \
300 (((struct myri10ge_slice_stat *)ss->ksp_stat->ks_data)->field.value.ul)
301
302
303 struct myri10ge_tx_copybuf
304 {
305 caddr_t va;
306 int len;
307 struct myri10ge_dma_stuff dma;
308 };
309
310 typedef struct
311 {
312 mcp_kreq_ether_recv_t *lanai; /* lanai ptr for recv ring */
313 mcp_kreq_ether_recv_t *shadow; /* host shadow of recv ring */
314 struct myri10ge_rx_buffer_state *info;
315 int cnt;
316 int alloc_fail;
317 int mask; /* number of rx slots -1 */
318 boolean_t polling;
|