gld_mac_info man page on SmartOS

Printed from http://www.polarhome.com/service/man/?qf=gld_mac_info&af=0&tf=2&of=SmartOS

GLD_MAC_INFO(9S)					      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 */
	 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
		       This structure member is private to the device-specific
		       driver  and is not used or modified by GLD. Convention‐
		       ally, this is used as a pointer to private data, point‐
		       ing  to	a  driver-defined  and	driver-allocated  per-
		       instance data structure.

       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.

			       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  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_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  acknowledge‐
			       ments   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.

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

       Writing Device Drivers

				  Jun 7, 2004		      GLD_MAC_INFO(9S)
[top]

List of man pages available for SmartOS

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