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 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 of 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                        August 22, 2023                       illumos