GLD_MAC_INFO(9S) | Data Structures for Drivers | GLD_MAC_INFO(9S) |
gld_mac_info - Generic LAN Driver MAC info data structure
#include <sys/gld.h>
illumos architecture specific (illumos DDI).
The Generic LAN Driver (GLD) Media Access Control (MAC) information (gld_mac_info) structure is the main data interface between the device-specific driver and GLD. It contains data required by GLD and a pointer to an optional additional driver-specific information structure.
The gld_mac_info structure should be allocated using gld_mac_alloc() and deallocated using gld_mac_free(). Drivers can make no assumptions about the length of this structure, which might be different in different releases of illumos and/or GLD. Structure members private to GLD, not documented here, should not be set or read by the device-specific driver.
caddr_t gldm_private; /* Driver private data */ int (*gldm_reset)(); /* Reset device */ int (*gldm_start)(); /* Start device */ int (*gldm_stop)(); /* Stop device */ int (*gldm_set_mac_addr)(); /* Set device phys addr */ int (*gldm_set_multicast)(); /* Set/delete */
/* multicast address */ int (*gldm_set_promiscuous)();
/* Set/reset promiscuous */
/* mode*/ int (*gldm_send)(); /* Transmit routine */ u_int (*gldm_intr)(); /* Interrupt handler */ int (*gldm_get_stats)(); /* Get device statistics */ int (*gldm_ioctl)(); /* Driver-specific ioctls */ char *gldm_ident; /* Driver identity string */ uint32_t gldm_type; /* Device type */ uint32_t gldm_minpkt; /* Minimum packet size */
/* accepted by driver */ uint32_t gldm_maxpkt; /* Maximum packet size */
/* accepted by driver */ uint32_t gldm_addrlen; /* Physical address */
/* length */ int32_t gldm_saplen; /* SAP length for */
/* DL_INFO_ACK */ unsigned char *gldm_broadcast_addr; /* Physical broadcast */
/* addr */ unsigned char *gldm_vendor_addr; /* Factory MAC address */ t_uscalar_t gldm_ppa; /* Physical Point of */
/* Attachment (PPA) number */ dev_info_t *gldm_devinfo; /* Pointer to device's */
/* dev_info node */ ddi_iblock_cookie_tgldm_cookie; /* Device's interrupt */
/* block cookie */ int gldm_margin /* accepted data beyond */
/*gldm_maxpkt */ uint32_t gldm_capabilities; /* Device capabilities */
Below is a description of the members of the gld_mac_info structure that are visible to the device driver.
gldm_private
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
gldm_start
gldm_stop
gldm_set_mac_addr
gldm_set_multicast
gldm_set_promiscuous
gldm_send
gldm_intr
gldm_get_stats
gldm_ioctl
gldm_ident
gldm_type
Support for the DL_TPR and DL_FDDI media types is obsolete and may be removed in a future release of illumos.
gldm_minpkt
gldm_maxpkt
gldm_addrlen
gldm_saplen
gldm_broadcast_addr
gldm_vendor_addr
gldm_ppa
gldm_devinfo
gldm_cookie
gldm_margin
gldm_capabilities
gld(4D), dlpi(4P), attach(9E), gld(9E), ddi_add_intr(9F), gld(9F), gld_stats(9S)
Writing Device Drivers
June 7, 2004 | OmniOS |