# # Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. # # # Customers should not modify this file unless explicitedly directed to do so. # # Each non-comment line of the file defines one 'inception_point' keyword. # # Each 'inception_point' keyword is associated with a new, but incompatible, # method of doing something. Typically, a new post-inception_point method is # established via install: upgrade operation continues in legacy # pre-inception_point mode. If a keyword is established by other means, expect # some type of incompatible, and possibly destructive, change on reboot. # # An API is provided to determine if the system is running in pre or post # inception_point keyword mode. The code associated with testing a keyword # looks something like # # if (ddi_inception_point_established("keyword")) { # post-inception_point implementation # } else { # legacy pre-inception_point implementation # } # # By tracking when inception points are introduced into this file, relative # to associated environment at the time of that introduction, future Solaris # developers can recognize opportunities to remove pre-inception_point code # and delete the inception-point definition. This opportunities will often # relate to platform EOL. # # In summary, the 'inception_point' mechanism gives us a way of both # introducing incompatible change, and (eventually) retiring legacy code. # # inception_point keyword descriptions and definitions follow: # scsa-no-binding-set-fcp/scsa-no-binding-set-vhci: # When these inception points are established the # # scsi_hba.c:scsi_hba_nodename_compatible_get() # # code no longer needs to create an fcp or vhci binding-set specific # compatible form. One result of not having this form is that a "disk@" # generic node-names will be created for SPARC FC/leadville /devices # paths instead of "ssd@" names. This is particularly important for MPxIO, # where the vHCI and all pHCIs need to agree on a node-name. #scsa-no-binding-set-fcp #scsa-no-binding-set-vhci # scsa-binding-set-fcp-0x/scsa-binding-set-vhci-0x # For many dtype values, like 00/'disk', switching driver binding and # node-name via scsa-no-binding-set-fcp/scsa-no-binding-set-vhci # does not cause an incompatible change. This is because the associated # devfsadm(1M) link generator code produces the same result either way. # For other dtype values, like 01/'tape' and 0d/'enclosure', the link # generator code will produce an incompatible new public /dev name when # the node-name@ changes. # # To limit incompatible change, we use an inception-point keyword that # includes that forces generation of binding-set compatible forms # even when scsa-no-binding-set-fcp/scsa-no-binding-set-vhci are defined. #scsa-binding-set-fcp-0x01 #scsa-binding-set-vhci-0x01 #scsa-binding-set-fcp-0x0d #scsa-binding-set-vhci-0x0d # NOTE: Add new inception points here ...