3
Defining the softc Data Structure
All network device drivers define a
softc
data structure to contain the
software context of the network device driver and to allow the driver
interfaces to share information.
A
softc
data structure contains the following information:
•
Common information (Section 3.1)
•
Enhanced hardware management (EHM) support (Section 3.2)
•
Media state information (Section 3.3)
•
Base register definition (Section 3.4)
•
Multicast table information (Section 3.5)
•
Interrupt handler ID declaration (Section 3.6)
•
CSR pointer information (Section 3.7)
•
FIFO maintenance information (Section 3.8)
•
Bus-specific information (Section 3.9)
•
Broadcast flag definition (Section 3.10)
•
Debug flag definition (Section 3.11)
•
Interrupt and timeout statistics (Section 3.12)
•
Autosense kernel thread context information (Section 3.13)
•
Polling context flag definition (Section 3.14)
•
w3_eeprom
data structure definition (Section 3.15)
•
Simple lock data structure declaration (Section 3.16)
Figure 3–1 shows a typical
softc
data structure.
Defining the softc Data Structure 3–1