gld_mac_info man page on Solaris

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
Solaris logo
[printable version]

gld_mac_info(9S)	  Data Structures for Drivers	      gld_mac_info(9S)

NAME
       gld_mac_info - Generic LAN Driver MAC info data structure

SYNOPSIS
       #include <sys/gld.h>

INTERFACE LEVEL
       Solaris architecture specific (Solaris DDI).

DESCRIPTION
       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 differ‐
       ent  releases  of Solaris and/or GLD. Structure members private to GLD,
       not documented here, should not be set or read by  the  device-specific
       driver.

STRUCTURE MEMBERS
       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 */
       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	       This structure member is private to the device-
			       specific	 driver and is not used or modified by
			       GLD. Conventionally, this is used as a  pointer
			       to  private  data, pointing to a driver-defined
			       and driver-allocated per-instance  data	struc‐
			       ture.

       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_reg‐
       ister() 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 descrip‐
			       tion  of the device. It is used to identify the
			       device in system messages.

       gldm_type	       The type of device the driver handles. The val‐
			       ues  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.

			       Note -  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 Eth‐
			       ernet, this number is 1500.

       gldm_addrlen	       The  length in bytes of physical addresses han‐
			       dled 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 spec‐
			       ification 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 allo‐
			       cate space to hold the broadcast address,  fill
			       it  in  with  the  appropriate  value,  and set
			       gldm_broadcast_addr to point at it. For	Ether‐
			       net,   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_capabilities       Bit-field of device capabilities. If the device
			       is  capable  of reporting media link state, the
			       GLD_CAP_LINKSTATE bit should be set.

SEE ALSO
       gld(7D),	 dlpi(7P),  attach(9E),	 gld(9E),  ddi_add_intr(9F),  gld(9F),
       gld_stats(9S)

       Writing Device Drivers

SunOS 5.10			  7 June 2004		      gld_mac_info(9S)
[top]

List of man pages available for Solaris

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net