Lines Matching refs:ctx

77 static int	igc_if_attach_pre(if_ctx_t ctx);
78 static int igc_if_attach_post(if_ctx_t ctx);
79 static int igc_if_detach(if_ctx_t ctx);
80 static int igc_if_shutdown(if_ctx_t ctx);
81 static int igc_if_suspend(if_ctx_t ctx);
82 static int igc_if_resume(if_ctx_t ctx);
84 static int igc_if_tx_queues_alloc(if_ctx_t ctx, caddr_t *vaddrs, uint64_t *paddrs, int ntxqs, int ntxqsets);
85 static int igc_if_rx_queues_alloc(if_ctx_t ctx, caddr_t *vaddrs, uint64_t *paddrs, int nrxqs, int nrxqsets);
86 static void igc_if_queues_free(if_ctx_t ctx);
89 static void igc_if_init(if_ctx_t ctx);
90 static void igc_if_stop(if_ctx_t ctx);
92 static int igc_if_media_change(if_ctx_t ctx);
93 static int igc_if_mtu_set(if_ctx_t ctx, uint32_t mtu);
94 static void igc_if_timer(if_ctx_t ctx, uint16_t qid);
95 static void igc_if_watchdog_reset(if_ctx_t ctx);
96 static bool igc_if_needs_restart(if_ctx_t ctx, enum iflib_restart_event event);
98 static void igc_identify_hardware(if_ctx_t ctx);
99 static int igc_allocate_pci_resources(if_ctx_t ctx);
100 static void igc_free_pci_resources(if_ctx_t ctx);
101 static void igc_reset(if_ctx_t ctx);
102 static int igc_setup_interface(if_ctx_t ctx);
103 static int igc_setup_msix(if_ctx_t ctx);
105 static void igc_initialize_transmit_unit(if_ctx_t ctx);
106 static void igc_initialize_receive_unit(if_ctx_t ctx);
108 static void igc_if_intr_enable(if_ctx_t ctx);
109 static void igc_if_intr_disable(if_ctx_t ctx);
110 static int igc_if_rx_queue_intr_enable(if_ctx_t ctx, uint16_t rxqid);
111 static int igc_if_tx_queue_intr_enable(if_ctx_t ctx, uint16_t txqid);
112 static void igc_if_multi_set(if_ctx_t ctx);
113 static void igc_if_update_admin_status(if_ctx_t ctx);
114 static void igc_if_debug(if_ctx_t ctx);
117 static int igc_if_set_promisc(if_ctx_t ctx, int flags);
118 static void igc_setup_vlan_hw_support(if_ctx_t ctx);
131 static void igc_get_wakeup(if_ctx_t ctx);
132 static void igc_enable_wakeup(if_ctx_t ctx);
429 igc_set_num_queues(if_ctx_t ctx)
453 igc_if_attach_pre(if_ctx_t ctx)
462 dev = iflib_get_dev(ctx);
463 adapter = iflib_get_softc(ctx);
465 adapter->ctx = adapter->osdep.ctx = ctx;
467 scctx = adapter->shared = iflib_get_softc_ctx(ctx);
468 adapter->media = iflib_get_media(ctx);
502 igc_identify_hardware(ctx);
505 scctx->isc_nrxqsets_max = scctx->isc_ntxqsets_max = igc_set_num_queues(ctx);
532 if (igc_allocate_pci_resources(ctx)) {
547 igc_setup_msix(ctx);
651 igc_get_wakeup(ctx);
658 iflib_set_mac(ctx, hw->mac.addr);
665 igc_free_pci_resources(ctx);
672 igc_if_attach_post(if_ctx_t ctx)
674 struct igc_adapter *adapter = iflib_get_softc(ctx);
679 error = igc_setup_interface(ctx);
684 igc_reset(ctx);
689 igc_if_update_admin_status(ctx);
701 igc_free_pci_resources(ctx);
702 igc_if_queues_free(ctx);
718 igc_if_detach(if_ctx_t ctx)
720 struct igc_adapter *adapter = iflib_get_softc(ctx);
727 igc_free_pci_resources(ctx);
739 igc_if_shutdown(if_ctx_t ctx)
741 return igc_if_suspend(ctx);
748 igc_if_suspend(if_ctx_t ctx)
750 struct igc_adapter *adapter = iflib_get_softc(ctx);
753 igc_enable_wakeup(ctx);
758 igc_if_resume(if_ctx_t ctx)
760 igc_if_init(ctx);
766 igc_if_mtu_set(if_ctx_t ctx, uint32_t mtu)
769 struct igc_adapter *adapter = iflib_get_softc(ctx);
770 if_softc_ctx_t scctx = iflib_get_softc_ctx(ctx);
796 igc_if_init(if_ctx_t ctx)
798 struct igc_adapter *adapter = iflib_get_softc(ctx);
800 if_t ifp = iflib_get_ifp(ctx);
814 igc_reset(ctx);
815 igc_if_update_admin_status(ctx);
834 igc_initialize_transmit_unit(ctx);
837 igc_if_multi_set(ctx);
839 adapter->rx_mbuf_sz = iflib_get_rx_mbuf_sz(ctx);
840 igc_initialize_receive_unit(ctx);
843 igc_setup_vlan_hw_support(ctx);
846 igc_if_set_promisc(ctx, if_getflags(ifp));
872 if_ctx_t ctx = adapter->ctx;
894 IFDI_INTR_DISABLE(ctx);
898 igc_handle_link(ctx);
907 igc_if_rx_queue_intr_enable(if_ctx_t ctx, uint16_t rxqid)
909 struct igc_adapter *adapter = iflib_get_softc(ctx);
917 igc_if_tx_queue_intr_enable(if_ctx_t ctx, uint16_t txqid)
919 struct igc_adapter *adapter = iflib_get_softc(ctx);
960 igc_handle_link(adapter->ctx);
972 if_ctx_t ctx = context;
973 struct igc_adapter *adapter = iflib_get_softc(ctx);
976 iflib_admin_intr_deferred(ctx);
988 igc_if_media_status(if_ctx_t ctx, struct ifmediareq *ifmr)
990 struct igc_adapter *adapter = iflib_get_softc(ctx);
994 iflib_admin_intr_deferred(ctx);
1035 igc_if_media_change(if_ctx_t ctx)
1037 struct igc_adapter *adapter = iflib_get_softc(ctx);
1038 struct ifmedia *ifm = iflib_get_media(ctx);
1073 igc_if_init(ctx);
1079 igc_if_set_promisc(if_ctx_t ctx, int flags)
1081 struct igc_adapter *adapter = iflib_get_softc(ctx);
1082 if_t ifp = iflib_get_ifp(ctx);
1133 igc_if_multi_set(if_ctx_t ctx)
1135 struct igc_adapter *adapter = iflib_get_softc(ctx);
1136 if_t ifp = iflib_get_ifp(ctx);
1177 igc_if_timer(if_ctx_t ctx, uint16_t qid)
1183 iflib_admin_intr_deferred(ctx);
1187 igc_if_update_admin_status(if_ctx_t ctx)
1189 struct igc_adapter *adapter = iflib_get_softc(ctx);
1191 device_t dev = iflib_get_dev(ctx);
1223 iflib_link_state_change(ctx, LINK_STATE_UP,
1229 iflib_link_state_change(ctx, LINK_STATE_DOWN, 0);
1235 igc_if_watchdog_reset(if_ctx_t ctx)
1237 struct igc_adapter *adapter = iflib_get_softc(ctx);
1253 igc_if_stop(if_ctx_t ctx)
1255 struct igc_adapter *adapter = iflib_get_softc(ctx);
1269 igc_identify_hardware(if_ctx_t ctx)
1271 device_t dev = iflib_get_dev(ctx);
1272 struct igc_adapter *adapter = iflib_get_softc(ctx);
1294 igc_allocate_pci_resources(if_ctx_t ctx)
1296 struct igc_adapter *adapter = iflib_get_softc(ctx);
1297 device_t dev = iflib_get_dev(ctx);
1323 igc_if_msix_intr_assign(if_ctx_t ctx, int msix)
1325 struct igc_adapter *adapter = iflib_get_softc(ctx);
1335 error = iflib_irq_alloc_generic(ctx, &rx_que->que_irq, rid, IFLIB_INTR_RXTX, igc_msix_que, rx_que, rx_que->me, buf);
1337 device_printf(iflib_get_dev(ctx), "Failed to allocate que int %d err: %d", i, error);
1358 iflib_softirq_alloc_generic(ctx,
1375 error = iflib_irq_alloc_generic(ctx, &adapter->irq, rid, IFLIB_INTR_ADMIN, igc_msix_link, adapter, 0, "aq");
1378 device_printf(iflib_get_dev(ctx), "Failed to register admin handler");
1384 iflib_irq_free(ctx, &adapter->irq);
1387 iflib_irq_free(ctx, &rx_que->que_irq);
1455 igc_free_pci_resources(if_ctx_t ctx)
1457 struct igc_adapter *adapter = iflib_get_softc(ctx);
1459 device_t dev = iflib_get_dev(ctx);
1463 iflib_irq_free(ctx, &adapter->irq);
1466 iflib_irq_free(ctx, &que->que_irq);
1490 igc_setup_msix(if_ctx_t ctx)
1592 igc_reset(if_ctx_t ctx)
1594 device_t dev = iflib_get_dev(ctx);
1595 struct igc_adapter *adapter = iflib_get_softc(ctx);
1763 igc_setup_interface(if_ctx_t ctx)
1765 if_t ifp = iflib_get_ifp(ctx);
1766 struct igc_adapter *adapter = iflib_get_softc(ctx);
1795 igc_if_tx_queues_alloc(if_ctx_t ctx, caddr_t *vaddrs, uint64_t *paddrs, int ntxqs, int ntxqsets)
1797 struct igc_adapter *adapter = iflib_get_softc(ctx);
1810 device_printf(iflib_get_dev(ctx), "Unable to allocate queue memory\n");
1823 device_printf(iflib_get_dev(ctx), "failed to allocate rs_idxs memory\n");
1835 device_printf(iflib_get_dev(ctx),
1839 igc_if_queues_free(ctx);
1844 igc_if_rx_queues_alloc(if_ctx_t ctx, caddr_t *vaddrs, uint64_t *paddrs, int nrxqs, int nrxqsets)
1846 struct igc_adapter *adapter = iflib_get_softc(ctx);
1858 device_printf(iflib_get_dev(ctx), "Unable to allocate queue memory\n");
1876 device_printf(iflib_get_dev(ctx),
1881 igc_if_queues_free(ctx);
1886 igc_if_queues_free(if_ctx_t ctx)
1888 struct igc_adapter *adapter = iflib_get_softc(ctx);
1923 igc_initialize_transmit_unit(if_ctx_t ctx)
1925 struct igc_adapter *adapter = iflib_get_softc(ctx);
1990 igc_initialize_receive_unit(if_ctx_t ctx)
1992 struct igc_adapter *adapter = iflib_get_softc(ctx);
1994 if_t ifp = iflib_get_ifp(ctx);
2126 igc_setup_vlan_hw_support(if_ctx_t ctx)
2128 struct igc_adapter *adapter = iflib_get_softc(ctx);
2130 struct ifnet *ifp = iflib_get_ifp(ctx);
2148 igc_if_intr_enable(if_ctx_t ctx)
2150 struct igc_adapter *adapter = iflib_get_softc(ctx);
2166 igc_if_intr_disable(if_ctx_t ctx)
2168 struct igc_adapter *adapter = iflib_get_softc(ctx);
2233 igc_get_wakeup(if_ctx_t ctx)
2235 struct igc_adapter *adapter = iflib_get_softc(ctx);
2250 igc_enable_wakeup(if_ctx_t ctx)
2252 struct igc_adapter *adapter = iflib_get_softc(ctx);
2253 device_t dev = iflib_get_dev(ctx);
2254 if_t ifp = iflib_get_ifp(ctx);
2386 igc_if_get_counter(if_ctx_t ctx, ift_counter cnt)
2388 struct igc_adapter *adapter = iflib_get_softc(ctx);
2389 if_t ifp = iflib_get_ifp(ctx);
2408 * @ctx: iflib context
2416 igc_if_needs_restart(if_ctx_t ctx __unused, enum iflib_restart_event event)
2447 device_t dev = iflib_get_dev(adapter->ctx);
2451 struct sysctl_ctx_list *ctx = device_get_sysctl_ctx(dev);
2463 SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "dropped",
2466 SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "link_irq",
2469 SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "rx_overruns",
2472 SYSCTL_ADD_ULONG(ctx, child, OID_AUTO, "watchdog_timeouts",
2475 SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "device_control",
2479 SYSCTL_ADD_PROC(ctx, child, OID_AUTO, "rx_control",
2483 SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "fc_high_water",
2486 SYSCTL_ADD_UINT(ctx, child, OID_AUTO, "fc_low_water",
2493 queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf,
2497 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "txd_head",
2501 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "txd_tail",
2505 SYSCTL_ADD_ULONG(ctx, queue_list, OID_AUTO, "tx_irq",
2513 queue_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, namebuf,
2517 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rxd_head",
2521 SYSCTL_ADD_PROC(ctx, queue_list, OID_AUTO, "rxd_tail",
2525 SYSCTL_ADD_ULONG(ctx, queue_list, OID_AUTO, "rx_irq",
2532 stat_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "mac_stats",
2536 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "excess_coll",
2539 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "single_coll",
2542 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "multiple_coll",
2545 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "late_coll",
2548 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "collision_count",
2551 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "symbol_errors",
2554 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "sequence_errors",
2557 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "defer_count",
2560 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "missed_packets",
2563 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_no_buff",
2566 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_undersize",
2569 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_fragmented",
2572 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_oversize",
2575 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_jabber",
2578 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "recv_errs",
2581 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "crc_errs",
2584 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "alignment_errs",
2587 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "xon_recvd",
2590 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "xon_txd",
2593 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "xoff_recvd",
2596 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "xoff_txd",
2601 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "total_pkts_recvd",
2604 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_pkts_recvd",
2607 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "bcast_pkts_recvd",
2610 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_recvd",
2613 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_64",
2616 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_65_127",
2619 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_128_255",
2622 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_256_511",
2625 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_512_1023",
2628 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "rx_frames_1024_1522",
2631 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_octets_recvd",
2636 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_octets_txd",
2639 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "total_pkts_txd",
2642 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "good_pkts_txd",
2645 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "bcast_pkts_txd",
2648 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "mcast_pkts_txd",
2651 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_64",
2654 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_65_127",
2657 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_128_255",
2660 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_256_511",
2663 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_512_1023",
2666 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tx_frames_1024_1522",
2669 SYSCTL_ADD_UQUAD(ctx, stat_list, OID_AUTO, "tso_txd",
2675 int_node = SYSCTL_ADD_NODE(ctx, child, OID_AUTO, "interrupts",
2679 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "asserts",
2683 SYSCTL_ADD_UQUAD(ctx, int_list, OID_AUTO, "rx_desc_min_thresh",
2857 igc_if_init(adapter->ctx);
2901 igc_if_debug(if_ctx_t ctx)
2903 igc_dump_rs(iflib_get_softc(ctx));
2913 device_t dev = iflib_get_dev(adapter->ctx);
2914 if_t ifp = iflib_get_ifp(adapter->ctx);