Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/bce/if_bce.c
Show All 12 Lines | |||||
DRIVER_MODULE(bce, pci, bce_driver, bce_devclass, NULL, NULL); | DRIVER_MODULE(bce, pci, bce_driver, bce_devclass, NULL, NULL); | ||||
DRIVER_MODULE(miibus, bce, miibus_driver, miibus_devclass, NULL, NULL); | DRIVER_MODULE(miibus, bce, miibus_driver, miibus_devclass, NULL, NULL); | ||||
MODULE_PNP_INFO("U16:vendor;U16:device;U16:#;U16:#;D:#", pci, bce, | MODULE_PNP_INFO("U16:vendor;U16:device;U16:#;U16:#;D:#", pci, bce, | ||||
bce_devs, nitems(bce_devs) - 1); | bce_devs, nitems(bce_devs) - 1); | ||||
/****************************************************************************/ | /****************************************************************************/ | ||||
/* Tunable device values */ | /* Tunable device values */ | ||||
/****************************************************************************/ | /****************************************************************************/ | ||||
static SYSCTL_NODE(_hw, OID_AUTO, bce, CTLFLAG_RD, 0, "bce driver parameters"); | static SYSCTL_NODE(_hw, OID_AUTO, bce, CTLFLAG_RD | CTLFLAG_MPSAFE, 0, | ||||
"bce driver parameters"); | |||||
/* Allowable values are TRUE or FALSE */ | /* Allowable values are TRUE or FALSE */ | ||||
static int bce_verbose = TRUE; | static int bce_verbose = TRUE; | ||||
SYSCTL_INT(_hw_bce, OID_AUTO, verbose, CTLFLAG_RDTUN, &bce_verbose, 0, | SYSCTL_INT(_hw_bce, OID_AUTO, verbose, CTLFLAG_RDTUN, &bce_verbose, 0, | ||||
"Verbose output enable/disable"); | "Verbose output enable/disable"); | ||||
/* Allowable values are TRUE or FALSE */ | /* Allowable values are TRUE or FALSE */ | ||||
static int bce_tso_enable = TRUE; | static int bce_tso_enable = TRUE; | ||||
Show All 24 Lines | |||||
SYSCTL_ADD_QUAD(ctx, children, OID_AUTO, | SYSCTL_ADD_QUAD(ctx, children, OID_AUTO, | ||||
"split_header_tcp_frames_rcvd", | "split_header_tcp_frames_rcvd", | ||||
CTLFLAG_RD, &sc->split_header_tcp_frames_rcvd, | CTLFLAG_RD, &sc->split_header_tcp_frames_rcvd, | ||||
"Number of split header TCP frames received"); | "Number of split header TCP frames received"); | ||||
} | } | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"nvram_dump", CTLTYPE_OPAQUE | CTLFLAG_RD, | "nvram_dump", CTLTYPE_OPAQUE | CTLFLAG_RD | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_nvram_dump, "S", ""); | bce_sysctl_nvram_dump, "S", ""); | ||||
#ifdef BCE_NVRAM_WRITE_SUPPORT | #ifdef BCE_NVRAM_WRITE_SUPPORT | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"nvram_write", CTLTYPE_OPAQUE | CTLFLAG_WR, | "nvram_write", CTLTYPE_OPAQUE | CTLFLAG_WR | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_nvram_write, "S", ""); | bce_sysctl_nvram_write, "S", ""); | ||||
#endif | #endif | ||||
#endif /* BCE_DEBUG */ | #endif /* BCE_DEBUG */ | ||||
SYSCTL_ADD_QUAD(ctx, children, OID_AUTO, | SYSCTL_ADD_QUAD(ctx, children, OID_AUTO, | ||||
"stat_IfHcInOctets", | "stat_IfHcInOctets", | ||||
CTLFLAG_RD, &sc->stat_IfHCInOctets, | CTLFLAG_RD, &sc->stat_IfHCInOctets, | ||||
Show All 24 Lines | |||||
SYSCTL_ADD_UINT(ctx, children, OID_AUTO, | SYSCTL_ADD_UINT(ctx, children, OID_AUTO, | ||||
"com_no_buffers", | "com_no_buffers", | ||||
CTLFLAG_RD, &sc->com_no_buffers, | CTLFLAG_RD, &sc->com_no_buffers, | ||||
0, "Valid packets received but no RX buffers available"); | 0, "Valid packets received but no RX buffers available"); | ||||
#ifdef BCE_DEBUG | #ifdef BCE_DEBUG | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"driver_state", CTLTYPE_INT | CTLFLAG_RW, | "driver_state", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_driver_state, "I", "Drive state information"); | bce_sysctl_driver_state, "I", "Drive state information"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"hw_state", CTLTYPE_INT | CTLFLAG_RW, | "hw_state", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_hw_state, "I", "Hardware state information"); | bce_sysctl_hw_state, "I", "Hardware state information"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"status_block", CTLTYPE_INT | CTLFLAG_RW, | "status_block", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_status_block, "I", "Dump status block"); | bce_sysctl_status_block, "I", "Dump status block"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"stats_block", CTLTYPE_INT | CTLFLAG_RW, | "stats_block", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_stats_block, "I", "Dump statistics block"); | bce_sysctl_stats_block, "I", "Dump statistics block"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"stats_clear", CTLTYPE_INT | CTLFLAG_RW, | "stats_clear", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_stats_clear, "I", "Clear statistics block"); | bce_sysctl_stats_clear, "I", "Clear statistics block"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"shmem_state", CTLTYPE_INT | CTLFLAG_RW, | "shmem_state", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_shmem_state, "I", "Shared memory state information"); | bce_sysctl_shmem_state, "I", "Shared memory state information"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"bc_state", CTLTYPE_INT | CTLFLAG_RW, | "bc_state", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_bc_state, "I", "Bootcode state information"); | bce_sysctl_bc_state, "I", "Bootcode state information"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"dump_rx_bd_chain", CTLTYPE_INT | CTLFLAG_RW, | "dump_rx_bd_chain", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_dump_rx_bd_chain, "I", "Dump RX BD chain"); | bce_sysctl_dump_rx_bd_chain, "I", "Dump RX BD chain"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"dump_rx_mbuf_chain", CTLTYPE_INT | CTLFLAG_RW, | "dump_rx_mbuf_chain", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_dump_rx_mbuf_chain, "I", "Dump RX MBUF chain"); | bce_sysctl_dump_rx_mbuf_chain, "I", "Dump RX MBUF chain"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"dump_tx_chain", CTLTYPE_INT | CTLFLAG_RW, | "dump_tx_chain", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_dump_tx_chain, "I", "Dump tx_bd chain"); | bce_sysctl_dump_tx_chain, "I", "Dump tx_bd chain"); | ||||
if (bce_hdr_split == TRUE) { | if (bce_hdr_split == TRUE) { | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"dump_pg_chain", CTLTYPE_INT | CTLFLAG_RW, | "dump_pg_chain", | ||||
CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | |||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_dump_pg_chain, "I", "Dump page chain"); | bce_sysctl_dump_pg_chain, "I", "Dump page chain"); | ||||
} | } | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"dump_ctx", CTLTYPE_INT | CTLFLAG_RW, | "dump_ctx", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_dump_ctx, "I", "Dump context memory"); | bce_sysctl_dump_ctx, "I", "Dump context memory"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"breakpoint", CTLTYPE_INT | CTLFLAG_RW, | "breakpoint", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_breakpoint, "I", "Driver breakpoint"); | bce_sysctl_breakpoint, "I", "Driver breakpoint"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"reg_read", CTLTYPE_INT | CTLFLAG_RW, | "reg_read", CTLTYPE_INT | CTLFLAG_RW| CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_reg_read, "I", "Register read"); | bce_sysctl_reg_read, "I", "Register read"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"nvram_read", CTLTYPE_INT | CTLFLAG_RW, | "nvram_read", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_nvram_read, "I", "NVRAM read"); | bce_sysctl_nvram_read, "I", "NVRAM read"); | ||||
SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | SYSCTL_ADD_PROC(ctx, children, OID_AUTO, | ||||
"phy_read", CTLTYPE_INT | CTLFLAG_RW, | "phy_read", CTLTYPE_INT | CTLFLAG_RW | CTLFLAG_NEEDGIANT, | ||||
(void *)sc, 0, | (void *)sc, 0, | ||||
bce_sysctl_phy_read, "I", "PHY register read"); | bce_sysctl_phy_read, "I", "PHY register read"); | ||||
#endif | #endif | ||||
DBEXIT(BCE_VERBOSE_MISC); | DBEXIT(BCE_VERBOSE_MISC); | ||||
} | } | ||||
Show All 12 Lines |