The following group of structure members must be set by the driver before calling gld_register(), and should not thereafter be modified by the driver; gld_register() can use or cache the values of some of these structure members, so changes made by the
driver after calling gld_register() might cause unpredicted results.
-
gldm_reset
-
Pointer to driver entry point; see gld(9E).
-
gldm_start
-
Pointer to driver entry point; see gld(9E).
-
gldm_stop
-
Pointer to driver entry point; see gld(9E).
-
gldm_set_mac_addr
-
Pointer to driver entry point; see gld(9E).
-
gldm_set_multicast
-
Pointer to driver entry point; see gld(9E).
-
gldm_set_promiscuous
-
Pointer to driver entry point; see gld(9E).
-
gldm_send
-
Pointer to driver entry point; see gld(9E).
-
gldm_intr
-
Pointer to driver entry point; see gld(9E).
-
gldm_get_stats
-
Pointer to driver entry point; see gld(9E).
-
gldm_ioctl
-
Pointer to driver entry point; can be NULL; see gld(9E).
-
gldm_ident
-
Pointer to a string containing a short description of the device. It is used to identify the device in system messages.
-
gldm_type
-
The type of device the driver handles. The values currently supported by GLD are DL_ETHER (IEEE 802.3 and Ethernet Bus), DL_TPR (IEEE 802.5 Token Passing Ring), and DL_FDDI (ISO 9314-2 Fibre Distributed Data Interface). This
structure member must be correctly set for GLD to function properly.
Support for the DL_TPR and DL_FDDI media types is obsolete and may be removed in a future release of Solaris.
-
gldm_minpkt
-
Minimum Service Data Unit size — the minimum packet size, not including the MAC header, that the device will transmit. This can be zero if the device-specific driver can handle any required padding.
-
gldm_maxpkt
-
Maximum Service Data Unit size — the maximum size of packet, not including the MAC header, that can be transmitted by the device. For Ethernet, this number is 1500.
-
gldm_addrlen
-
The length in bytes of physical addresses handled by the device. For Ethernet, Token Ring, and FDDI, the value of this structure member should be 6.
-
gldm_saplen
-
The length in bytes of the Service Access Point (SAP) address used by the driver. For GLD-based drivers, this should always be set to -2, to indicate that two-byte SAP values are supported and that the SAP appears after the physical address in a DLSAP
address. See the description under ``Message DL_INFO_ACK'' in the DLPI specification for more details.
-
gldm_broadcast_addr
-
Pointer to an array of bytes of length gldm_addrlen containing the broadcast address to be used for transmit. The driver must allocate space to hold the broadcast address, fill it in with the appropriate value, and set gldm_broadcast_addr to
point at it. For Ethernet, Token Ring, and FDDI, the broadcast address is normally 0xFF-FF-FF-FF-FF-FF.
-
gldm_vendor_addr
-
Pointer to an array of bytes of length gldm_addrlen containing the vendor-provided network physical address of the device. The driver must allocate space to hold the address, fill it in with information read from the device, and set gldm_vendor_addr to
point at it.
-
gldm_ppa
-
The Physical Point of Attachment (PPA) number for this instance of the device. Normally this should be set to the instance number, returned from ddi_get_instance(9F).
-
gldm_devinfo
-
Pointer to the dev_info node for this device.
-
gldm_cookie
-
The interrupt block cookie returned by ddi_get_iblock_cookie(9F), ddi_add_intr(9F), ddi_get_soft_iblock_cookie(9F), or ddi_add_softintr(9F). This must correspond to the device's receive interrupt, from which gld_recv() is called.
-
gldm_margin
-
Drivers set this value to the amount of data in bytes that the device can transmit beyond gldm_maxpkt. For example, if an Ethernet device can handle packets whose payload section is no greater than 1522 bytes and the gldm_maxpkt is set to 1500
(as is typical for Ethernet), then gldm_margin is set to 22. The registered gldm_margin value is reported in acknowledgements of the DLIOCMARGININFO ioctl (see dlpi(7P)).
-
gldm_capabilities
-
Bit-field of device capabilities. If the device is capable of reporting media link state, the GLD_CAP_LINKSTATE bit should be set.