MAC_PROP_INFO(9F) Kernel Functions for Drivers MAC_PROP_INFO(9F)

NAME


mac_prop_info, mac_prop_info_set_default_fec,
mac_prop_info_set_default_link_flowctrl, mac_prop_info_set_default_str,
mac_prop_info_set_default_uint8, mac_prop_info_set_default_uint32,
mac_prop_info_set_default_uint64, mac_prop_info_set_perm,
mac_prop_info_set_range_uint32 - mac property information functions

SYNOPSIS


#include <sys/mac_provider.h>

void
mac_prop_info_set_default_fec(mac_prop_info_handle_t hdl,
link_fec_t fec);

void
mac_prop_info_set_default_link_flowctrl(mac_prop_info_handle_t hdl,
link_flowctrl_t fctl);

void
mac_prop_info_set_default_str(mac_prop_info_handle_t hdl,
const char *str);

void
mac_prop_info_set_default_uint8(mac_prop_info_handle_t hdl,
uint8_t u8);

void
mac_prop_info_set_default_uint16(mac_prop_info_handle_t hdl,
uint16_t u16);

void
mac_prop_info_set_default_uint32(mac_prop_info_handle_t hdl,
uint32_t u32);

void
mac_prop_info_set_perm(mac_prop_info_handle_t hdl, uint8_t perm);

void
mac_prop_info_set_range_uint32(mac_prop_info_handle_t hdl,
uint32_t low, uint32_t high);

INTERFACE LEVEL


illumos DDI specific

PARAMETERS


hdl A pointer to the MAC property information handle.

fctl A valid link flow control entry. Valid values are documented
in the MAC_PROP_FLOWCTRL property description in the PROPERTIES
section of mac(9E).

fec A valid link forward error correction (fec) scheme. Valid
values are documented in the MAC_PROP_EN_FEC_CAP property
description in the PROPERTIES section of mac(9E).

str A null-terminated ASCII character string that describes that
contains a value of a property.

u8 An 8-bit unsigned value.

u16 An 16-bit unsigned value.

u32 An 32-bit unsigned value.

perm An 8-bit unsigned value which is the bitwise inclusive OR of
the following values:

MAC_PROP_PERM_READ
This flag indicates that a property is readable.

MAC_PROP_PERM_WRITE
This flag indicates that a property is writable.

MAC_PROP_PERM_RW
This flag indicates that a property is both readable
and writable. This is equivalent to specifying both
MAC_PROP_PERM_READ and MAC_PROP_PERM_WRITE.

low A 32-bit unsigned value that represents the lowest possible
value of an integer property, generally inclusive.

high A 32-bit unsigned value that represents the highest possible
value an integer property, generally inclusive.

DESCRIPTION


The mac_prop_info family of functions are used to fill in metadata
about a given property as part of a driver's mc_propinfo(9E) entry
point. These functions can be used to fill in information about the
default value that the device assigns to a property and the permissions
that a privileged user has to update the property.

The mac_prop_info_set_perm() function is used to set the permissions of
a property. These permissions indicate whether or not the property can
be read or modified from the device driver's perspective. The
permissions for a given property should generally not change for a
given device and they do not need to take into account user privileges.
For the most case, properties will only take one of two values:
MAC_PROP_PERM_READ or MAC_PROP_PERM_RW. Usually it does not make sense
for a property to just have MAC_PROP_PERM_WRITE.

Subsequent calls to the mac_prop_info_set_perm() function will override
the values stored in previous calls.

The mac_prop_info_set_range_uint32() function is used to indicate a
range of possible integer values that a device may take. This range is
generally inclusive, meaning the property may be set to any value in
the range of low to high. Each time the
mac_prop_info_set_range_uint32() function is called, a new property
range is added, allowing for multiple disjoint ranges to be specified
for a given property.

The remaining functions, mac_prop_info_set_default_fec(),
mac_prop_info_set_default_link_flowctrl(),
mac_prop_info_set_default_str(), mac_prop_info_set_uint8(),
mac_prop_info_set_uint16(), mac_prop_info_set_uint32(), and
mac_prop_info_set_range_uint32() update the default value of a given
property. The default value is the initial value that the property
takes after the device driver has called mac_register(9F). If these
functions are called multiple times, then the default value will be
replaced with each call.

The different functions each support a different type of default value
and some are used for specific properties. The
mac_prop_info_set_default_link_flowctrl() function works with
properties that describe flow control properties. The various values
of a link_flowctrl_t are documented in mac(9E).

The mac_prop_info_set_default_str() function sets the default value for
properties that use strings. The device driver should ensure that it
uses alphanumeric ASCII characters only in the string to guarantee
portability.

The mac_prop_info_set_default_uint8(),
mac_prop_info_set_default_uint16(), and
mac_prop_info_set_default_uint32() functions set the default value for
values whose properties are 8-, 16-, and 32-bit unsigned values
respectively.

The mac_prop_info_set_default_fec() function is used for properties
that describe link forward error correction values such as
MAC_PROP_EN_FEC_CAP and MAC_PROP_ADV_FEC_CAP. The various values of a
link_fec_t are documented in mac(9E).

CONTEXT


These functions are generally called on a handle passed into the
mc_propinfo(9E) entry point, though they function in both user and
kernel context.

RETURN VALUES


All of the functions documented here do not return a value. It is not
the driver's responsibility to ensure that there is sufficient space
for permissions, ranges, or default values in the
mac_prop_info_handle_t structures: the surrounding driver framework
will transparently take care of that and ensure that errors are
correctly propagated.

SEE ALSO


mac(9E), mc_getprop(9E), mc_propinfo(9E), mc_setprop(9E)

illumos February 25, 2021 illumos

tribblix@gmail.com :: GitHub :: Privacy