380
381 /* must change mac_notify_cb_list[] in mac_provider.c if this is changed */
382 typedef enum {
383 MAC_NOTE_LINK,
384 MAC_NOTE_UNICST,
385 MAC_NOTE_TX,
386 MAC_NOTE_DEVPROMISC,
387 MAC_NOTE_FASTPATH_FLUSH,
388 MAC_NOTE_SDU_SIZE,
389 MAC_NOTE_DEST,
390 MAC_NOTE_MARGIN,
391 MAC_NOTE_CAPAB_CHG,
392 MAC_NOTE_LOWLINK,
393 MAC_NOTE_ALLOWED_IPS,
394 MAC_NNOTE /* must be the last entry */
395 } mac_notify_type_t;
396
397 typedef void (*mac_notify_t)(void *, mac_notify_type_t);
398 typedef void (*mac_rx_t)(void *, mac_resource_handle_t, mblk_t *,
399 boolean_t);
400 typedef mblk_t *(*mac_receive_t)(void *, int);
401
402 /*
403 * MAC resource types
404 */
405 typedef enum {
406 MAC_RX_FIFO = 1
407 } mac_resource_type_t;
408
409 typedef int (*mac_intr_enable_t)(mac_intr_handle_t);
410 typedef int (*mac_intr_disable_t)(mac_intr_handle_t);
411
412 typedef struct mac_intr_s {
413 mac_intr_handle_t mi_handle;
414 mac_intr_enable_t mi_enable;
415 mac_intr_disable_t mi_disable;
416 ddi_intr_handle_t mi_ddi_handle;
417 boolean_t mi_ddi_shared;
418 } mac_intr_t;
419
420 typedef struct mac_rx_fifo_s {
|
380
381 /* must change mac_notify_cb_list[] in mac_provider.c if this is changed */
382 typedef enum {
383 MAC_NOTE_LINK,
384 MAC_NOTE_UNICST,
385 MAC_NOTE_TX,
386 MAC_NOTE_DEVPROMISC,
387 MAC_NOTE_FASTPATH_FLUSH,
388 MAC_NOTE_SDU_SIZE,
389 MAC_NOTE_DEST,
390 MAC_NOTE_MARGIN,
391 MAC_NOTE_CAPAB_CHG,
392 MAC_NOTE_LOWLINK,
393 MAC_NOTE_ALLOWED_IPS,
394 MAC_NNOTE /* must be the last entry */
395 } mac_notify_type_t;
396
397 typedef void (*mac_notify_t)(void *, mac_notify_type_t);
398 typedef void (*mac_rx_t)(void *, mac_resource_handle_t, mblk_t *,
399 boolean_t);
400 typedef mblk_t *(*mac_receive_t)(void *, size_t);
401
402 /*
403 * MAC resource types
404 */
405 typedef enum {
406 MAC_RX_FIFO = 1
407 } mac_resource_type_t;
408
409 typedef int (*mac_intr_enable_t)(mac_intr_handle_t);
410 typedef int (*mac_intr_disable_t)(mac_intr_handle_t);
411
412 typedef struct mac_intr_s {
413 mac_intr_handle_t mi_handle;
414 mac_intr_enable_t mi_enable;
415 mac_intr_disable_t mi_disable;
416 ddi_intr_handle_t mi_ddi_handle;
417 boolean_t mi_ddi_shared;
418 } mac_intr_t;
419
420 typedef struct mac_rx_fifo_s {
|