Windows PowerShell command on Get-command gld_mac_info
MyWebUniversity

Manual Pages for UNIX Operating System command usage for man gld_mac_info

Data Structures for Drivers gld_mac_info(9S)

NAME

gld_mac_info - Generic LAN Driver MAC info data structure

SYNOPSIS

#include

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 inter-

face 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 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 */

SunOS 5.11 Last change: 7 June 2004 1

Data Structures for Drivers gld_mac_info(9S)

/* 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. Conventionally, this is used as a pointer to private data, pointing

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_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).

SunOS 5.11 Last change: 7 June 2004 2

Data Structures for Drivers gld_mac_info(9S)

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 han-

dles. 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

SunOS 5.11 Last change: 7 June 2004 3

Data Structures for Drivers gld_mac_info(9S)

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 descrip-

tion 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

SunOS 5.11 Last change: 7 June 2004 4

Data Structures for Drivers gld_mac_info(9S)

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.

SEE ALSO

gld(7D), dlpi(7P), attach(9E), gld(9E), ddi_add_intr(9F),

gld(9F), gld_stats(9S)

Writing Device Drivers

SunOS 5.11 Last change: 7 June 2004 5




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™