Go to main content

man pages section 9: DDI and DKI Driver Entry Points

Exit Print View

Updated: Thursday, June 13, 2019
 
 

mac_capab_rings(9E)

Name

mac_capab_rings, mr_rget, mr_gget, mr_gaddring, mr_gremring - MAC capab rings driver entry points

Synopsis

#include <sys/mac_provider.h>

void prefix_ring_get(void *driver_handle, mac_ring_type_t rtype,
     int group_index, int ring_index, mac_ring_info_t *rinfop,
     mac_ring_handle_t ring_handle);
void prefix_group_get(void *driver_handle, mac_ring_type_t rtype,
     int group_index, mac_group_info_t *ginfop,
     mac_group_handle_t group_handle);
void prefix_group_add_ring(mac_group_driver_t group_handle,
     mac_ring_driver_t ring_handle, mac_ring_type_t rtype);
void prefix_group_remove_ring(mac_group_driver_t group_handle,
     mac_ring_driver_t ring_handle, mac_ring_type_t, rtype);

Parameters

driver_handle

Pointer to the driver-private handle which was specified by the device driver through the m_driver field of the mac_register(9S) structure during registration.

rtype

The ring type being queried, either RX or TX rings.

MAC_RING_TYPE_TX for TX rings or TX ring groups.

MAC_RING_TYPE_RX for RX rings or RX ring groups.

group_index

The ring group index supplied by the MAC layer to query a specific driver ring group. The group index should not exceed the number of ring groups reported in response to a MAC_CAPAB_RINGS query.

ring_index

The ring index supplied by the MAC layer to query a specific ring. The ring index should not exceed the number of rings reported in a MAC_CAPAB_RINGS query.

rinfop

The mac_ring_info(9S) structure to be filled by the driver for the mac layer. This structure provides the MAC layer the specific information it requires to manipulate this specific driver ring.

ginfop

The mac_group_info(9S) structure to be filled by the driver for the mac layer. This structure provides the MAC layer the specific information it requires to manipulate this specific driver ring group.

group_handle

An opaque handle to the MAC layer's representation of this ring group.

ring_handle

An opaque handle to the MAC layer's representation of this ring.

Interface Level

Solaris architecture specific (Solaris DDI).

Description

The entry points described below are implement the MAC device driver and passed to the MAC layer through the mac_capab_rings structure as part of the response to a MAC_CAPAB_RINGS request from the MAC layer.

The mr_gget() function requests the driver to fill in the mac_group_info structure in response to the MAC layer. The MAC layer then uses the response to further manipulate the ring group of the driver.

The mr_rget() function requests the driver to fill in the mac_ring_info structure in response to the MAC layer. The MAC layer then uses the response to further manipulate a ring controlled by the driver.

The mr_gaddring() function adds the specified ring to the specified ring group. This action should be implemented only in MAC drivers that implement dynamic ring grouping as described in mac_capab_rings(9S).

The mr_gremring() function removes the specified ring from the specified ring group. This action should be implemented only in MAC drivers that implement dynamic ring grouping as described in mac_capab_rings(9S).

Return Values

None of these entry points have return values.

Attributes

See attributes(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/header
Interface Stability
Committed

See Also

attributes(7), mac_capab_rings(9S), mac_group_info(9S), mac_register(9S), mac_ring_info(9S)