MR_GGET(9E) | Driver Entry Points | MR_GGET(9E) |
mr_gget
— fill MAC
group information
#include
<sys/mac_provider.h>
void
prefix_fill_group_info
(void
*driver, mac_ring_type_t rtype,
const int group_index,
mac_group_info_t *infop,
mac_group_handle_t gh);
Uncommitted - This interface is still evolving. API and ABI stability is not guaranteed.
MAC_RING_TYPE_RX
MAC_RING_TYPE_TX
The
mr_gget
()
entry point provides a means for the device driver to fill in information
about a group. The driver returns information about the group to the MAC
framework via the infop argument. For the list of
fields and an explanation of how to fill them in, please see
mac_group_info(9S).
The rtype argument describes whether this is
a group of receive rings or a group of transmit rings. This is identified by
the value in rtype which will be
MAC_RING_TYPE_RX
for a receive group and
MAC_RING_TYPE_TX
for a transmit group. It is
recommended that a driver doule check that the rtype
matches what it expects if it uses separate entry points for receive and
transmit groups. The group information that is filled in varies between
transmit and receive groups. If separate entry points were not specified in
the mac_capab_rings(9E)
structure, then the driver must ensure that it checks this value and acts
appropriately.
The group_index argument is used to uniquely identify a group. Groups are numbered starting at zero and end at one less then the number of groups specified in mr_gnum member of the mac_capbab_rings_t structure which is described in mac_capab_rings(9E). Group IDs can be represented as the mathematical range [0, mr_gnum).
After filling in the group information in infop, the driver should make sure to store the group handle gh for future use, mapping it to the index group_index.
The mr_gget
() entry point will be called
in response to a driver calling the
mac_register(9F) function and
the driver has acknowledged that it supports the
MAC_CAPAB_RINGS
capability.
mac(9E), mac_capab_rings(9E), mac_register(9F), mac_group_info(9S), mac_register(9S)
July 2, 2022 | OmniOS |