diff options
author | Jerry Jelinek <jerry.jelinek@joyent.com> | 2017-06-08 10:10:29 +0000 |
---|---|---|
committer | Jerry Jelinek <jerry.jelinek@joyent.com> | 2017-06-08 10:10:29 +0000 |
commit | 8cb9f5acecaded019a9a55454a31dcf4328d0d1b (patch) | |
tree | 7c69e28b9b9b5ac2d9f928324a663becf2efa2d7 /usr/src/man/man9f | |
parent | 3a5445f1b9d90e4f1538503bd60913c8f302c17f (diff) | |
parent | 79809f9cf402f130667349b2d4007ecd65d63c6f (diff) | |
download | illumos-joyent-release-20170608.tar.gz |
[illumos-gate merge]release-20170608
commit 79809f9cf402f130667349b2d4007ecd65d63c6f
8269 dtrace stddev aggregation is normalized incorrectly
commit 22c8b9583d07895c16549075a53668d7bc988cf3
8108 zdb -l fails to read labels 2 and 3
commit 0255edcc85fc0cd1dda0e49bcd52eb66c06a1b16
8056 zfs send size estimate is inaccurate for some zvols
commit dbfd9f930004c390a2ce2cf850c71b4f880eef9c
8156 dbuf_evict_notify() does not need dbuf_evict_lock
commit 690031d326342fa4ea28b5e80f1ad6a16281519d
8168 NULL pointer dereference in zfs_create()
commit 7c4ab494ff60bbbcc0889e71388ae63e903bbf57
8276 rpcbind leaks memory due to libumem per thread caching.
commit f176a0a4cd61cbd708a7f25dc30d221f4d5902ba
8270 dnlc_reverse_lookup() is unsafe at any speed
commit 72d3dbb9ab4481606cb93caca98ba3b3a8eb6ce2
8300 fix man page issues found by mandoc 1.14.1
commit cb4d790db8fe85bce9f9647fe4e1bdc274c7af1c
8337 gss: misleading-indentation
commit f53522305c07915a44e86f2455cc62e7aac27037
8324 more: misleading-indentation
Conflicts:
usr/src/uts/common/fs/lookup.c
usr/src/man/man3c/thrd_equal.3c
Diffstat (limited to 'usr/src/man/man9f')
26 files changed, 413 insertions, 320 deletions
diff --git a/usr/src/man/man9f/avl.9f b/usr/src/man/man9f/avl.9f index 4e7f594730..761248019a 100644 --- a/usr/src/man/man9f/avl.9f +++ b/usr/src/man/man9f/avl.9f @@ -31,7 +31,7 @@ .Nm avl_remove , .Nm avl_swap , .Nm AVL_NEXT , -.Nm AVL_PREV , +.Nm AVL_PREV .Nd AVL tree routines .Sh DESCRIPTION AVL trees are a general purpose, self-balancing binary tree that can be @@ -44,10 +44,10 @@ The AVL tree interfaces are identical in both userland and the kernel. For more general information on AVL trees, see .Xr libavl 3LIB . For more information on any of the funtions defined here, please see the -corresponding manual page in section 3AVL. Please note, that while -the descriptions in those manual pages are accurate for writers of -Device Drivers, the examples provided use scaffolding not available in -the kernel, such as the use of +corresponding manual page in section 3AVL. +Please note, that while the descriptions in those manual pages are accurate for +writers of Device Drivers, the examples provided use scaffolding not available +in the kernel, such as the use of .Fn malloc , and need to be adapated. .Sh CONTEXT @@ -62,7 +62,8 @@ in .Sy Committed .Sh MT-Safety AVL trees do not inherently have any internal locking, it is up to the -consumer to use locks as appropriate. See +consumer to use locks as appropriate. +See .Xr mutex 9F and .Xr rwlock 9F diff --git a/usr/src/man/man9f/cmn_err.9f b/usr/src/man/man9f/cmn_err.9f index e7fe3b544c..9b620c7ff4 100644 --- a/usr/src/man/man9f/cmn_err.9f +++ b/usr/src/man/man9f/cmn_err.9f @@ -296,7 +296,8 @@ The function can be called from user, kernel, interrupt, or high-level interrupt context. .Sh RETURN VALUES -None. However, if an unknown +None. +However, if an unknown .Fa level is passed to .Fn cmn_err , diff --git a/usr/src/man/man9f/id_space.9f b/usr/src/man/man9f/id_space.9f index c077fd9434..4f8f953a31 100644 --- a/usr/src/man/man9f/id_space.9f +++ b/usr/src/man/man9f/id_space.9f @@ -84,31 +84,34 @@ An identifier, a signed 32-bit integer. .It Fa name An ASCII character string to call the identifier space. .It Fa low -The lower end of an identifier space. This value is included in the -range. +The lower end of an identifier space. +This value is included in the range. .It Fa high -The upper end of an identifier space. This value is excluded from the -range. +The upper end of an identifier space. +This value is excluded from the range. .El .Sh DESCRIPTION The .Sy id_space -suite of functions is used to create and manage identifier spaces. An -identifier space allows the system to manage a range of identifiers. It -tracks what values have been used and which values have not been used +suite of functions is used to create and manage identifier spaces. +An identifier space allows the system to manage a range of identifiers. +It tracks what values have been used and which values have not been used and has different ways of allocating values from the identifier space. .Pp Identifier spaces are often used by device drivers to manage ranges of -numeric identifiers that may be disjoint. A common use case for -identifier spaces is to manage the set of allocated minor numbers for a -device driver. +numeric identifiers that may be disjoint. +A common use case for identifier spaces is to manage the set of allocated minor +numbers for a device driver. .Ss Creating, Expanding and Destroying Identifier Spaces To create an identifier space, the .Fn id_space_create -function should be used. A name for the id space must be passed in the +function should be used. +A name for the id space must be passed in the .Fa name -argument. It should be unique. For device drivers, often combining the -name of the driver and the instance from the +argument. +It should be unique. +For device drivers, often combining the name of the driver and the instance from +the .Xr ddi_get_instance 9F function results in a unique name. .Pp @@ -116,9 +119,9 @@ The values of .Fa low and .Fa high -describe the range of the identifier space. The range is inclusive on -the low end and exclusive on the high end. Mathematically, this would be -represented as +describe the range of the identifier space. +The range is inclusive on the low end and exclusive on the high end. +Mathematically, this would be represented as .Pf [ Fa low , .Fa high Ns ). .Pp @@ -128,14 +131,17 @@ function has been successfully called, the returned identifier space can be used to allocate and manage identifiers. .Pp Once an identifier space has been created, additional ranges of -identifiers can be added. This process allows for disjoint ranges of -values to be added to a single identifier space. The +identifiers can be added. +This process allows for disjoint ranges of values to be added to a single +identifier space. +The .Fn id_space_extend function is used to do this, and it adds the range .Fa low to .Fa high -to the identifier space. The range follows the same rules as with the +to the identifier space. +The range follows the same rules as with the .Fn id_space_create function. It is inclusive of @@ -154,36 +160,39 @@ All three of these functions, .Fn id_space_extend , and .Fn id_space_destroy -may block. They should only be called from a context where it's safe for -it to block. This is equivalent to performing a blocking memory allocation. +may block. +They should only be called from a context where it's safe for it to block. +This is equivalent to performing a blocking memory allocation. .Ss Allocating Identifiers Once an id space has been created with the .Fn id_space_create -function, identifiers can be allocated from the space. There are three -different strategies for allocating an identifier: +function, identifiers can be allocated from the space. +There are three different strategies for allocating an identifier: .Bl -enum .It Allocating an identifier using the standard algorithm that attempts to use the next identifier first. .It -Allocating an identifier using a first fit algorithm. These are -functions with +Allocating an identifier using a first fit algorithm. +These are functions with .Em ff -in the name. Using this will tend to keep the allocated id space more -compressed. +in the name. +Using this will tend to keep the allocated id space more compressed. .It Allocating a specific id. .El .Pp In addition, identifiers can be allocated in both a blocking and -non-blocking fashion. When functions with the +non-blocking fashion. +When functions with the .Sy _nosleep -prefix are used, they are non-blocking. If no identifier is available, -they will return an error. +prefix are used, they are non-blocking. +If no identifier is available, they will return an error. .Pp The .Fn id_alloc -function will allocate the next identifier. The +function will allocate the next identifier. +The .Fn id_alloc_nosleep function uses the same algorithm as .Fn id_alloc , @@ -191,7 +200,8 @@ but will fail rather than block. .Pp The .Fn id_allocff -function will allocate the first available identifier. The +function will allocate the first available identifier. +The .Fn id_allocff_nosleep function uses the same algorithm as .Fn id_allocff , @@ -201,12 +211,14 @@ The .Fn id_alloc_specific_nosleep function attempts to allocate the specific identifier .Fa id -from the specified identifier space. If +from the specified identifier space. +If .Fa id has already been allocated, then the function will fail. .Ss Freeing Identifiers Every allocated identifier must eventually be freed and returned to the -identifier space. To free an identifier, use the +identifier space. +To free an identifier, use the .Fn id_free function, specifying the identifier in .Fa id @@ -220,7 +232,8 @@ All of these functions may be called in .Sy user or .Sy kernel -context. The +context. +The .Fn id_alloc_nosleep , .Fn id_allocff_nosleep , and @@ -231,7 +244,8 @@ context. .Sh RETURN VALUES Upon successful completion, the .Fn id_space_create -function returns a pointer to an identifier space. Otherwise, +function returns a pointer to an identifier space. +Otherwise, .Dv NULL is returned to indicate that the identifier space could not be created. .Pp @@ -248,7 +262,8 @@ Upon successful completion, the and .Fn id_alloc_specific_nosleep functions will return an identifier that's in the range of the specified -identifier space. Otherwise, +identifier space. +Otherwise, .Sy -1 is returned to indicate that no identifier was available, or in the case of the diff --git a/usr/src/man/man9f/mac_alloc.9f b/usr/src/man/man9f/mac_alloc.9f index c3c6892b19..e777672a77 100644 --- a/usr/src/man/man9f/mac_alloc.9f +++ b/usr/src/man/man9f/mac_alloc.9f @@ -66,7 +66,7 @@ section of When the driver is done with the .Xr mac_register 9S structure, it must call the -.Xr mac_free +.Xr mac_free 9F function to release any associated memory. .Sh CONTEXT The @@ -85,10 +85,11 @@ Upon successful completion, the .Fn mac_register function will return a pointer to an allocated .Sy mac_register_t -structure that can be filled in by the driver. Otherwise, +structure that can be filled in by the driver. +Otherwise, .Dv NULL -is returned to indicate that the structure could not be allocated. The -most common cause for this is that the value of +is returned to indicate that the structure could not be allocated. +The most common cause for this is that the value of .Fa mac_version is not supported by the kernel. .Sh SEE ALSO diff --git a/usr/src/man/man9f/mac_hcksum_get.9f b/usr/src/man/man9f/mac_hcksum_get.9f index b186890fd1..d6aec5441d 100644 --- a/usr/src/man/man9f/mac_hcksum_get.9f +++ b/usr/src/man/man9f/mac_hcksum_get.9f @@ -51,9 +51,9 @@ The value or a pointer to it that contains the offset from the L3 header, generally IP, of the first byte that's covered by the checksum. .It Fa stuff The value or a pointer to it that contains the offset from the L3 header -of where the L4 checksum is. For example, if using IPv4 and TCP, this -would contain the offset from the start of the IPv4 header to the first -byte of the TCP checksum. +of where the L4 checksum is. +For example, if using IPv4 and TCP, this would contain the offset from the start +of the IPv4 header to the first byte of the TCP checksum. .It Fa end The value or a pointer to it that contains the offset from the L3 header, generally IP, of the last byte that's covered by the checksum. @@ -72,7 +72,8 @@ The and .Fn mac_hcksum_set functions are provided to device drivers to get and set checksum related -information. When a device driver indicates that it supports the +information. +When a device driver indicates that it supports the .Sy MAC_CAPAB_HCKSUM capability as part of its .Xr mc_getcapab 9E @@ -83,11 +84,12 @@ While both functions operate on an .Sy mblk_t , this function should only be called on the first .Sy mblk_t -that begins a given individual frame in a chain. In other words, it only -works on entries where it is the first of many possible entries linked -together by the +that begins a given individual frame in a chain. +In other words, it only works on entries where it is the first of many possible +entries linked together by the .Sy b_cont -member. The first +member. +The first .Sy mblk_t received from any .Xr mac 9E @@ -99,14 +101,15 @@ When a device driver is receiving data, it is its responsibility to .Em set checksum information when it has indicated that it supports the .Sy MAC_CAPAB_HCKSUM -capability. Device drivers will call the +capability. +Device drivers will call the .Fn mac_hcksum_set function to indicate what checksum information has occurred. .Pp -The proper values to set depend on the flags passed in. The following -flags are supported when receiving data, note that they may have -different meanings from when transmitting data. The driver should set -the +The proper values to set depend on the flags passed in. +The following flags are supported when receiving data, note that they may have +different meanings from when transmitting data. +The driver should set the .Fa flags argument to the bitwise inclusive OR of the following values: .Bl -tag -width Sy @@ -125,14 +128,14 @@ and arguments. .It Sy HCK_FULLCKSUM This flag indicates that the hardware has calculated the full L4 header -checksum; however, it wants the system to verify it. The checksum should -be passed in the +checksum; however, it wants the system to verify it. +The checksum should be passed in the .Fa value argument. .It Sy HCK_FULLCKSUM_OK This flag indicates that the hardware has calculated the full L4 header -checksum and verified that it is correct. The networking stack does not -need to verify it. +checksum and verified that it is correct. +The networking stack does not need to verify it. .El .Pp The @@ -140,8 +143,8 @@ The .Sy HCK_FULLCKSUM , and .Sy HCK_FULLCKSUM_OK -flags are all mutually exclusive. A device driver should only set one of -the three flags. +flags are all mutually exclusive. +A device driver should only set one of the three flags. .Pp If one of the arguments is not required based on the specified value of .Fa flags , @@ -154,27 +157,28 @@ supports the capability, then it must call the .Fn mac_hcksum_get function to determine what hardware checksumming options are required to -be performed by the hardware. While the device driver may need the other -fields, it must check the +be performed by the hardware. +While the device driver may need the other fields, it must check the .Fa flags -argument to determine what it is being requested to do. The following -values may be set in +argument to determine what it is being requested to do. +The following values may be set in .Fa flags : .Bl -tag -width Sy .It Sy HCK_IPV4_HDRCKSUM -The device driver must compute the IPv4 header checksum. No other fields -have been filled in. +The device driver must compute the IPv4 header checksum. +No other fields have been filled in. .It Sy HCK_PARTIALCKSUM The device driver needs to compute the partial ones' complement of the -checksum. The system has filled in the +checksum. +The system has filled in the .Fa start , .Fa stuff , and .Fa end arguments to assist the device driver. .It Sy HCK_FULLCKSUM -The device driver should compute the full L4 checksum. No other fields -have been filled in for the device driver. +The device driver should compute the full L4 checksum. +No other fields have been filled in for the device driver. .El .Pp The flags that the device driver will get will depend on what the device diff --git a/usr/src/man/man9f/mac_init_ops.9f b/usr/src/man/man9f/mac_init_ops.9f index a744cddbf8..c3608f89ec 100644 --- a/usr/src/man/man9f/mac_init_ops.9f +++ b/usr/src/man/man9f/mac_init_ops.9f @@ -55,7 +55,8 @@ The .Fn mac_init_ops function should be called during the driver's .Xr _init 9E -entry point. As described in more detail in the +entry point. +As described in more detail in the .Sx Initializing MAC Support section of .Xr mac 9E , @@ -71,8 +72,8 @@ entry point, after the call to .Xr mod_remove 9F has succeeded, then the driver must call the .Fn mac_fini_ops -function to finalize support and finish releasing any resources. If the -call to +function to finalize support and finish releasing any resources. +If the call to .Xr mod_remove 9F fails, then the device driver should not call .Fn mac_fini_ops @@ -105,8 +106,8 @@ The .Fn mac_init_ops and .Fn mac_fini_ops -functions will always succeed. They do not have any kind of return -value. +functions will always succeed. +They do not have any kind of return value. .Sh EXAMPLES The following example shows how a driver would call .Xr mac_init_ops 9F diff --git a/usr/src/man/man9f/mac_link_update.9f b/usr/src/man/man9f/mac_link_update.9f index a7a460dab0..f37990c3c3 100644 --- a/usr/src/man/man9f/mac_link_update.9f +++ b/usr/src/man/man9f/mac_link_update.9f @@ -32,8 +32,8 @@ illumos DDI specific The MAC handle obtained from a call to .Xr mac_register 9F . .It Fa link -The current state of the link. For valid link states see the discussion -of +The current state of the link. +For valid link states see the discussion of .Sy MAC_PROP_STATUS in the .Sx PROPERTIES @@ -44,16 +44,17 @@ section of The .Fn mac_link_update function is used by device drivers to inform the MAC layer that the -state of a link has changed. As discussed in the +state of a link has changed. +As discussed in the .Sx Link Updates section of .Xr mac 9E , the driver should call this whenever it detects that the state of the -link has changed. If the state has not changed, then the driver should -not call this function. In addition, if the device driver is powering -off the link or is transitioning to a state where it can no longer -determine the link status, then it should make sure to call this -function with the value of +link has changed. +If the state has not changed, then the driver should not call this function. +In addition, if the device driver is powering off the link or is transitioning +to a state where it can no longer determine the link status, then it should make +sure to call this function with the value of .Fa link set to .Sy LINK_STATE_UNKNOWN . diff --git a/usr/src/man/man9f/mac_lso_get.9f b/usr/src/man/man9f/mac_lso_get.9f index b8a28c770c..4fd21cf26b 100644 --- a/usr/src/man/man9f/mac_lso_get.9f +++ b/usr/src/man/man9f/mac_lso_get.9f @@ -47,19 +47,20 @@ function is used by device drivers that have indicated that they support the .Sy MAC_CAPAB_LSO capability to determine whether large send offload (also known as large -segmentation offload or LSO) is required for this frame or not. If so, -the driver should take the appropriate actions to program the hardware +segmentation offload or LSO) is required for this frame or not. +If so, the driver should take the appropriate actions to program the hardware to perform LSO. .Pp The .Fn mac_lso_get function should only be called on the first .Sy mblk_t -that begins a given individual frame in a chain. In other words, it only -works on entries where it is the first of many possible entries linked -together by the +that begins a given individual frame in a chain. +In other words, it only works on entries where it is the first of many possible +entries linked together by the .Sy b_cont -member. The first +member. +The first .Sy mblk_t received from any .Xr mac 9E @@ -75,8 +76,8 @@ may be a bitwise inclusive OR of the following: .Bl -tag -width Sy .It Sy HW_LSO This flag indicates that hardware needs to perform segmentation -offload. The maximum segment size that the driver should use is -available through the +offload. +The maximum segment size that the driver should use is available through the .Fa mss argument. .El diff --git a/usr/src/man/man9f/mac_maxsdu_update.9f b/usr/src/man/man9f/mac_maxsdu_update.9f index 297d30ef41..223a2bf608 100644 --- a/usr/src/man/man9f/mac_maxsdu_update.9f +++ b/usr/src/man/man9f/mac_maxsdu_update.9f @@ -41,8 +41,9 @@ function is used to inform the MAC layer that the device represented by the handle .Fa mh has changed the largest size frame that it can transmit, also known as -its Send Data Unit (SDU). This should be called when the device's MTU -has been requested to be changed when a driver's +its Send Data Unit (SDU). +This should be called when the device's MTU has been requested to be changed +when a driver's .Xr mac_setprop 9E entry point has been called with the property .Sy MAC_PROP_MTU @@ -51,13 +52,14 @@ or some other device-related event occurring. The .Fa sdu represents the size of the largest payload ignoring the size of its own -headers or any margin. For example, for an Ethernet-based device, this -size should not include the Ethernet header or any VLAN tags. +headers or any margin. +For example, for an Ethernet-based device, this size should not include the +Ethernet header or any VLAN tags. .Pp Through VNICs and other virtual data links, many different devices may -be using a single physical device and have their own MTUs. The system -takes care of those concerns and will not ask a device driver to update -the MTU without verifying this. +be using a single physical device and have their own MTUs. +The system takes care of those concerns and will not ask a device driver to +update the MTU without verifying this. .Sh RETURN VALUES Upon successful completion, the .Fn mac_maxsdu_update diff --git a/usr/src/man/man9f/mac_prop_info.9f b/usr/src/man/man9f/mac_prop_info.9f index 8b134ddd03..0582665ce3 100644 --- a/usr/src/man/man9f/mac_prop_info.9f +++ b/usr/src/man/man9f/mac_prop_info.9f @@ -69,7 +69,8 @@ illumos DDI specific .It Ft hdl A pointer to the MAC property information handle. .It Ft fctl -A valid link flow control entry. Valid values are documented in the +A valid link flow control entry. +Valid values are documented in the .Sy MAC_PROP_FLOWCTRL property description in the .Sx PROPERTIES @@ -117,18 +118,19 @@ The family of functions are used to fill in metadata about a given property as part of a driver's .Xr 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. +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. .Pp The .Fn 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: +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: .Sy MAC_PROP_PERM_READ or .Sy MAC_PROP_PERM_RW . @@ -142,8 +144,9 @@ function will override the values stored in previous calls. The .Fn 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 +device may take. +This range is generally inclusive, meaning the property may be set to any value +in the range of .Fa low to .Fa high . @@ -160,14 +163,16 @@ The remaining functions, .Fn mac_prop_info_set_uint32 , and .Fn 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 +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 .Xr mac_register 9F . If these functions are called multiple times, then the default value will be replaced with each call. .Pp The different functions each support a different type of default value -and some are used for specific properties. The +and some are used for specific properties. +The .Fn mac_prop_info_set_default_link_flowctrl function works with properties that describe flow control properties. The various values of a @@ -177,8 +182,8 @@ are documented in .Pp The .Fn 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 +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. .Pp The @@ -197,9 +202,9 @@ and .Sy kernel context. .Sh 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 +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 .Ft mac_prop_info_handle_t structures: the surrounding driver framework will transparently take care of that and ensure that errors are correctly propagated. diff --git a/usr/src/man/man9f/mac_register.9f b/usr/src/man/man9f/mac_register.9f index 05fe8fc60b..93c5662a61 100644 --- a/usr/src/man/man9f/mac_register.9f +++ b/usr/src/man/man9f/mac_register.9f @@ -49,15 +49,16 @@ The .Fn mac_register function is used to register an instance of a device driver with the .Xr mac 9E -framework. Upon successfully calling the +framework. +Upon successfully calling the .Fn mac_register function, the device will start having its .Xr mac_callbacks 9S -entry points called. The device driver should call this function -during it's +entry points called. +The device driver should call this function during it's .Xr attach 9E -entry point after the device has been configured and is set up. For a -more detailed explanation of the exact steps that the device driver +entry point after the device has been configured and is set up. +For a more detailed explanation of the exact steps that the device driver should take and where in the sequence of a driver's .Xr attach 9E entry point this function should be called, see the @@ -69,14 +70,16 @@ The driver should provide a pointer to a .Ft mac_handle_t structure as the second argument to the .Fn mac_register -function. This handle will be used when the device driver needs to -interact with the framework in various ways throughout its life. It is -also where the driver gets the +function. +This handle will be used when the device driver needs to interact with the +framework in various ways throughout its life. +It is also where the driver gets the .Fa mh argument for calling the .Fn mac_unregister -function. It is recommended that the device driver keep the handle -around in its soft state structure for a given instance. +function. +It is recommended that the device driver keep the handle around in its soft +state structure for a given instance. .Pp If the call to the .Fn mac_register @@ -101,15 +104,18 @@ entry point, it should call the .Fn mac_unregister function immediately after draining any of its transmit and receive resources that might have been given to the rest of the operating system -through DMA binding. See the +through DMA binding. +See the .Sx MBLKS AND DMA section of .Xr mac 9E -for more information. This should be done before the driver does any -tearing down. The call to the +for more information. +This should be done before the driver does any tearing down. +The call to the .Fn mac_unregister -function may fail. This may happen because the networking stack is still -using the device. In such a case, the driver should fail the call to +function may fail. +This may happen because the networking stack is still using the device. +In such a case, the driver should fail the call to .Xr detach 9E and return .Sy DDI_FAILURE . @@ -118,13 +124,15 @@ The .Fn mac_register function is generally only called from a driver's .Xr attach 9E -entry point. The +entry point. +The .Fn mac_unregister function is generally only called from a driver's .Xr attach 9E and .Xr detach 9E -entry point. However, both functions may be called from either +entry point. +However, both functions may be called from either .Sy user or .Sy kernel diff --git a/usr/src/man/man9f/mac_rx.9f b/usr/src/man/man9f/mac_rx.9f index 74ce834a9a..19067c1838 100644 --- a/usr/src/man/man9f/mac_rx.9f +++ b/usr/src/man/man9f/mac_rx.9f @@ -46,12 +46,13 @@ member. The .Fn mac_rx function is used by device drivers to deliver frames that a device -driver has received to the rest of the operating system. This will -generally be called at the end of a device driver's interrupt handler +driver has received to the rest of the operating system. +This will generally be called at the end of a device driver's interrupt handler after it is has converted all of the incoming data into a chain of .Xr mblk 9S -structures. For a full description of the process that the device driver -should take as part of receiving data, see the +structures. +For a full description of the process that the device driver should take as part +of receiving data, see the .Sx Receiving Data section of .Xr mac 9E . @@ -63,9 +64,9 @@ function. .Pp Device drivers should not call the .Fn mac_rx -function after each individual mblk_t is assembled. Rather, the device -driver should batch up as many frames as it is willing to process in a -given interrupt or otherwise. +function after each individual mblk_t is assembled. +Rather, the device driver should batch up as many frames as it is willing to +process in a given interrupt or otherwise. .Sh CONTEXT The .Fn mac_rx diff --git a/usr/src/man/man9f/mac_tx_update.9f b/usr/src/man/man9f/mac_tx_update.9f index 11f6ac475d..331fcbe983 100644 --- a/usr/src/man/man9f/mac_tx_update.9f +++ b/usr/src/man/man9f/mac_tx_update.9f @@ -37,10 +37,11 @@ The function is used by device drivers to indicate that the device represented by the handle .Fa mh -can transmit data again. It should only be called after the device -driver has returned data from its +can transmit data again. +It should only be called after the device driver has returned data from its .Xr mc_tx 9E -endpoint. For more information on when this should be called, see both +endpoint. +For more information on when this should be called, see both .Xr mc_tx 9E and the .Sx Transmitting Data and Back Pressure @@ -48,7 +49,8 @@ section of .Xr mac 9E . .Pp Device drivers should not hold any of their own locks when calling into -this function. See the +this function. +See the .Sx MAC Callbacks section of .Xr mac 9E diff --git a/usr/src/man/man9f/usb_ep_xdescr_fill.9f b/usr/src/man/man9f/usb_ep_xdescr_fill.9f index 0a11dcac93..94947c7860 100644 --- a/usr/src/man/man9f/usb_ep_xdescr_fill.9f +++ b/usr/src/man/man9f/usb_ep_xdescr_fill.9f @@ -33,7 +33,8 @@ illumos DDI specific .It Fa version Indicates the current version of the .Ft usb_ep_xdescr_t -structure the driver is using. Callers should always specify +structure the driver is using. +Callers should always specify .Sy USB_EP_XDESCR_CURRENT_VERSION . .It Fa dip Pointer to the device's @@ -60,10 +61,11 @@ can be used to open a pipe by calling .Pp Prior to USB 3.0, only one descriptor, the .Xr usb_ep_descr 9S , -was needed to describe an endpoint. However, with USB 3.0, additional -companion descriptors have been added and are required to successfully -open an endpoint. After calling this, all descriptors needed -to successfully open a pipe will be placed into +was needed to describe an endpoint. +However, with USB 3.0, additional companion descriptors have been added and are +required to successfully open an endpoint. +After calling this, all descriptors needed to successfully open a pipe will be +placed into .Fa ep_xdescr and the endpoint data, .Fa ep_data , diff --git a/usr/src/man/man9f/usb_pipe_xopen.9f b/usr/src/man/man9f/usb_pipe_xopen.9f index b9a2406252..4d403a786e 100644 --- a/usr/src/man/man9f/usb_pipe_xopen.9f +++ b/usr/src/man/man9f/usb_pipe_xopen.9f @@ -48,13 +48,15 @@ Pointer to provides hints on pipe usage. .It Fa flags .Sy USB_FLAGS_SLEEP -is only flag that is recognized. Wait for memory resources if -not immediately available. +is only flag that is recognized. +Wait for memory resources if not immediately available. .It Fa pipe_handle -Address to where new pipe handle is returned. (The handle is opaque.) +Address to where new pipe handle is returned. +(The handle is opaque.) .El .Sh DESCRIPTION -A pipe is a logical connection to an endpoint on a USB device. The +A pipe is a logical connection to an endpoint on a USB device. +The .Fn usb_pipe_xopen function creates such a logical connection and returns an initialized handle which refers to that connection. @@ -62,26 +64,34 @@ initialized handle which refers to that connection. The .Em USB 3.0 specification defines four endpoint types, each with a -corresponding type of pipe. Each of the four types of pipes uses its physical -connection resource differently. They are: +corresponding type of pipe. +Each of the four types of pipes uses its physical connection resource +differently. +They are: .Bl -tag -width Sy .It Sy Control Pipe Used for bursty, non-periodic, reliable, host-initiated request/response -communication, such as for command/status operations. These are guaranteed to -get approximately 10% of frame time and will get more if needed and if -available, but there is no guarantee on transfer promptness. Bidirectional. +communication, such as for command/status operations. +These are guaranteed to get approximately 10% of frame time and will get more if +needed and if available, but there is no guarantee on transfer promptness. +Bidirectional. .It Sy Bulk Pipe -Used for large, reliable, non-time-critical data transfers. These get the bus -on a bandwidth-available basis. Unidirectional. Sample uses include printer -data. +Used for large, reliable, non-time-critical data transfers. +These get the bus on a bandwidth-available basis. +Unidirectional. +Sample uses include printer data. .It Sy Interrupt Pipe Used for sending or receiving small amounts of reliable data infrequently but -with bounded service periods, as for interrupt handling. Unidirectional. +with bounded service periods, as for interrupt handling. +Unidirectional. .It Sy Isochronous Pipe -Used for large, unreliable, time-critical data transfers. Boasts a guaranteed -constant data rate as long as there is data, but there are no retries of failed -transfers. Interrupt and isochronous data are together guaranteed 90% of frame -time as needed. Unidirectional. Sample uses include audio. +Used for large, unreliable, time-critical data transfers. +Boasts a guaranteed constant data rate as long as there is data, but there are +no retries of failed transfers. +Interrupt and isochronous data are together guaranteed 90% of frame time as +needed. +Unidirectional. +Sample uses include audio. .El .Pp The type of endpoint to which a pipe connects (and therefore the pipe type) is @@ -97,26 +107,28 @@ Prior to the .Em USB 3.0 specification, only the .Xr usb_ep_descr 9S -was required to identify all of the attributes of a given pipe. Starting -with +was required to identify all of the attributes of a given pipe. +Starting with .Em USB 3.0 there are additional endpoint companion descriptors required to open a -pipe. To support SuperSpeed devices, the new +pipe. +To support SuperSpeed devices, the new .Fn usb_pipe_xopen function must be used rather than the older .Fn usb_pipe_open -function. The +function. +The .Xr usb_ep_xdescr 9S structure can be automatically filled out and obtained by calling the .Xr usb_ep_xdescr_fill 9F function. .Pp -Opens to interrupt and isochronous pipes can fail -if the required bandwidth cannot be guaranteed. +Opens to interrupt and isochronous pipes can fail if the required bandwidth +cannot be guaranteed. .Pp The polling interval for periodic (interrupt or isochronous) pipes, carried by -the endpoint argument's bInterval field, must be within range. Valid ranges -are: +the endpoint argument's bInterval field, must be within range. +Valid ranges are: .Pp Full speed: range of 1-255 maps to 1-255 ms. .Pp @@ -127,11 +139,11 @@ High speed: range of 1-16 maps to (2**(bInterval-1)) * 125us. Super speed: range of 1-16 maps to (2**(bInterval-1)) * 125us. .Pp Adequate bandwidth during transfers is guaranteed for all periodic pipes which -are opened successfully. Interrupt and isochronous pipes have guaranteed -latency times, so bandwidth for them is allocated when they are opened. +are opened successfully. +Interrupt and isochronous pipes have guaranteed latency times, so bandwidth for +them is allocated when they are opened. .Po -Please -refer to Sections +Please refer to Sections .Em 4.4.7 and .Em 4.4.8 @@ -141,21 +153,21 @@ specification which address isochronous and interrupt transfers. .Pc Opens of interrupt and isochronous pipes fail if inadequate bandwidth is -available to support their guaranteed latency time. Because periodic -pipe bandwidth is allocated on pipe open, open periodic pipes only when -needed. +available to support their guaranteed latency time. +Because periodic pipe bandwidth is allocated on pipe open, open periodic pipes +only when needed. .Pp The bandwidth required by a device varies based on polling interval, the maximum packet size .Pq Sy wMaxPacketSize -and the device speed. Unallocated -bandwidth remaining for new devices depends on the bandwidth already allocated -for previously opened periodic pipes. +and the device speed. +Unallocated bandwidth remaining for new devices depends on the bandwidth already +allocated for previously opened periodic pipes. .Pp The .Em pipe_policy -parameter provides a hint as to pipe usage and must be -specified. It is a +parameter provides a hint as to pipe usage and must be specified. +It is a .Em usb_pipe_policy_t which contains the following fields: .Bd -literal -offset indent @@ -166,10 +178,10 @@ The .Sy pp_max_async_reqs member is a hint indicating how many asynchronous operations requiring their own kernel thread will be concurrently in progress, the highest -number of threads ever needed at one time. Allow at least one for -synchronous callback handling and as many as are needed to accommodate -the anticipated parallelism of asynchronous* calls to the following -functions: +number of threads ever needed at one time. +Allow at least one for synchronous callback handling and as many as are needed +to accommodate the anticipated parallelism of asynchronous* calls to the +following functions: .Xr usb_pipe_close 9F , .Xr usb_set_cfg 9F , .Xr usb_set_alt_if 9F , @@ -180,30 +192,31 @@ functions: and .Xr usb_pipe_stop_isoc_polling 9F . .Pp -Setting to too small a value can deadlock the pipe. Asynchronous calls -are calls made without the +Setting to too small a value can deadlock the pipe. +Asynchronous calls are calls made without the .Sy USB_FLAGS_SLEEP -flag being passed. Note that -a large number of callbacks becomes an issue mainly when blocking +flag being passed. +Note that a large number of callbacks becomes an issue mainly when blocking functions are called from callback handlers. .Pp The control pipe to the default endpoints (endpoints for both directions with addr 0, sometimes called the default control pipe or default pipe) comes -pre-opened by the hub. A client driver receives the default control pipe handle -through +pre-opened by the hub. +A client driver receives the default control pipe handle through .Xr usb_get_dev_data 9F . A client driver cannot open the default -control pipe manually. Note that the same control pipe may be shared among -several drivers when a device has multiple interfaces and each interface is -operated by its own driver. +control pipe manually. +Note that the same control pipe may be shared among several drivers when a +device has multiple interfaces and each interface is operated by its own driver. .Pp All explicit pipe opens are exclusive; attempts to open an opened pipe fail. .Pp On success, the pipe_handle argument points to an opaque handle of the opened -pipe. On failure, it is set to NULL. +pipe. +On failure, it is set to NULL. .Sh CONTEXT -May be called from user or kernel context regardless of arguments. May also be -called from interrupt context if the +May be called from user or kernel context regardless of arguments. +May also be called from interrupt context if the .Sy USB_FLAGS_SLEEP option is not set. .Sh RETURN VALUES @@ -213,22 +226,25 @@ Open succeeded. .It Sy USB_NO_RESOURCES Insufficient resources were available. .It Sy USB_NO_BANDWIDTH -Insufficient bandwidth available. (isochronous and interrupt pipes). +Insufficient bandwidth available. +(isochronous and interrupt pipes). .It Sy USB_INVALID_CONTEXT Called from interrupt handler with USB_FLAGS_SLEEP set. .It Sy USB_INVALID_ARGS -dip and/or pipe_handle is NULL. Pipe_policy is NULL. +dip and/or pipe_handle is NULL. +Pipe_policy is NULL. .It Sy USB_INVALID_PERM -Endpoint is NULL, signifying the default control pipe. A client driver cannot -open the default control pipe. +Endpoint is NULL, signifying the default control pipe. +A client driver cannot open the default control pipe. .It Sy USB_NOT_SUPPORTED Isochronous or interrupt endpoint with maximum packet size of zero is not supported. .It Sy USB_HC_HARDWARE_ERROR Host controller is in an error state. .It Sy USB_FAILURE -Pipe is already open. Host controller not in an operational state. Polling -interval +Pipe is already open. +Host controller not in an operational state. +Polling interval .Pq Sy Bep_descr bInterval No field is out of range (intr or isoc pipes). .Pp diff --git a/usr/src/man/man9f/usba_alloc_hcdi_ops.9f b/usr/src/man/man9f/usba_alloc_hcdi_ops.9f index 9f355ef031..ba5a202dbe 100644 --- a/usr/src/man/man9f/usba_alloc_hcdi_ops.9f +++ b/usr/src/man/man9f/usba_alloc_hcdi_ops.9f @@ -32,8 +32,8 @@ .Sy Volatile - illumos USB HCD private function .Pp -This is a private function that is not part of the stable DDI. It may be -removed or changed at any time. +This is a private function that is not part of the stable DDI. +It may be removed or changed at any time. .Sh PARAMATERS .Bl -tag -width Fa .It Fa ops @@ -44,10 +44,10 @@ The .Fn usba_alloc_hcdi_ops function allocates a .Xr usba_hcdi_ops_t 9S -structure for use for a USB HCD driver. As part of initialization, a USB -HCD driver will allocate this and fill it in. For more information on -the full lifetime of the object and when a USB HCD driver should release -the structure, see +structure for use for a USB HCD driver. +As part of initialization, a USB HCD driver will allocate this and fill it in. +For more information on the full lifetime of the object and when a USB HCD +driver should release the structure, see .Xr usba_hcdi 9E . .Pp The @@ -65,8 +65,9 @@ HCD driver's .Xr attach 9E and .Xr detach 9E -entry points. While it is safe to call this function from user context, -it would be quite unusal to do so. +entry points. +While it is safe to call this function from user context, it would be quite +unusal to do so. .Sh RETURN VALUES The .Fn usba_alloc_hcdi_ops diff --git a/usr/src/man/man9f/usba_hcdi_cb.9f b/usr/src/man/man9f/usba_hcdi_cb.9f index 62cdc062ee..81c498aa8b 100644 --- a/usr/src/man/man9f/usba_hcdi_cb.9f +++ b/usr/src/man/man9f/usba_hcdi_cb.9f @@ -29,14 +29,14 @@ .Sy Volatile - illumos USB HCD private function .Pp -This is a private function that is not part of the stable DDI. It may be -removed or changed at any time. +This is a private function that is not part of the stable DDI. +It may be removed or changed at any time. .Sh PARAMETERS .Bl -tag -width Fa .It Fa ph A pointer to the USBA pipe handle that was passed to the HCD driver during a call to the -.Xr usba_hcdi_pipe_open +.Xr usba_hcdi_pipe_open 9E entry point. .It Fa req A pointer to the request structure that is being completed. @@ -63,14 +63,15 @@ performed over the life of the transfer. This function must not be used if the HCD driver returned a value other than .Sy USB_SUCCESS -to one of the transfer initialization functions listed above. For more -information on transfer request handling, see +to one of the transfer initialization functions listed above. +For more information on transfer request handling, see .Xr usba_hcdi 9E . .Pp The .Fa ph argument corresponds to the USBA framework's pipe handle that was given -to the HCDI when the pipe was opened. See +to the HCDI when the pipe was opened. +See .Xr usba_hcdi_pipe_open 9E and .Xr usba_hcdi 9E @@ -87,9 +88,9 @@ or which have been cast to the type .Ft usb_oapque_t . The caller should ensure that all appropriate members of the request -structure have been filled in. For example, if expecting data from the -device and the request has completed successfully, then that data -should be copied into the request structure's +structure have been filled in. +For example, if expecting data from the device and the request has completed +successfully, then that data should be copied into the request structure's .Xr mblk 9S prior to handing the request structure to the .Fn usb_hcdi_cb @@ -102,8 +103,8 @@ member should be filled in with the appropriate data. .Pp Once the request structure has been passed to the .Fn usba_hcdi_cb -function, the HCD driver must not access the structure ever again. It -should be treated as freed memory. +function, the HCD driver must not access the structure ever again. +It should be treated as freed memory. .Pp The .Fa cr @@ -112,14 +113,15 @@ If .Fa cr is set to .Sy USB_CR_OK -that indicates that the transfer completed successfully. This should -also be used when a permitted short transfer has occurred. Otherwise, it -should be set to one of the completion reasons. +that indicates that the transfer completed successfully. +This should also be used when a permitted short transfer has occurred. +Otherwise, it should be set to one of the completion reasons. .Ss Locking The HCD driver should not hold its own internal locks across a call to the .Fn usba_hcdi_cb -function. It is possible that the driver will have once of its +function. +It is possible that the driver will have once of its .Xr usba_hcdi 9E entry points called based on the return value specified. .Sh CONTEXT diff --git a/usr/src/man/man9f/usba_hcdi_dup_intr_req.9f b/usr/src/man/man9f/usba_hcdi_dup_intr_req.9f index 976c8c8d37..e3ec12d55d 100644 --- a/usr/src/man/man9f/usba_hcdi_dup_intr_req.9f +++ b/usr/src/man/man9f/usba_hcdi_dup_intr_req.9f @@ -30,8 +30,8 @@ .Sy Volatile - illumos USB HCD private function .Pp -This is a private function that is not part of the stable DDI. It may be -removed or changed at any time. +This is a private function that is not part of the stable DDI. +It may be removed or changed at any time. .Sh PARAMETERS .Bl -tag -width Fa .It Fa dip @@ -44,15 +44,16 @@ A pointer to the USB interrupt request which will be duplicated. The number of bytes in the allocated data block .Sy mblk_t . .It Fa flags -Flags which describe how allocations should be performed. Valid flags -are: +Flags which describe how allocations should be performed. +Valid flags are: .Bl -tag -width Sy .It Sy USB_FLAGS_NOSLEEP -Do not block waiting for memory. If memory is not available the allocation -will fail. +Do not block waiting for memory. +If memory is not available the allocation will fail. .It Sy USB_FLAGS_SLEEP -Perform a blocking allocation. If memory is not available, the function -will wait until memory is made available. +Perform a blocking allocation. +If memory is not available, the function will wait until memory is made +available. .Pp Note, the request may still fail even if .Sy USB_FLAGS_SLEEP @@ -67,28 +68,34 @@ function is used to duplicate an existing interrupt request, .Pp The USBA framework initiates interrupt operations through the .Xr usba_hcdi_pipe_intr_xfer 9E -entry point. It provides an initial USB interrupt request as an argument. +entry point. +It provides an initial USB interrupt request as an argument. When the HCD driver has interrupt data to return, it needs to duplicate that initial interrupt request each time that it submits data through the .Xr usba_hcdi_cb 9F -function. In addition to duplicating the request, callers may also need -to increase the pipe handle's request count. For more information, see +function. +In addition to duplicating the request, callers may also need to increase the +pipe handle's request count. +For more information, see .Xr usba_hcdi_pipe_intr_xfer 9E . .Pp The .Fa dip argument should correspond to the HCD driver's .Sy dev_info_t -structure. The +structure. +The .Fa irqp -pointer should correspond to the initial interrupt request. The +pointer should correspond to the initial interrupt request. +The .Fa size -argument should describe the maximum amount of data needed for this -request. The amount of data will be dependent on the endpoint and -device. The value of +argument should describe the maximum amount of data needed for this request. +The amount of data will be dependent on the endpoint and device. +The value of .Fa flags -should depend on the caller's context. If +should depend on the caller's context. +If .Dv USB_FLAGS_SLEEP is passed while in interrupt context, then this function will fail. .Sh CONTEXT @@ -106,7 +113,8 @@ must be .Sh RETURN VALUES Upon successful completion, the .Fn usba_hcdi_dup_intr_req -function returns a pointer to a duplicated interrupt request. Otherwise, +function returns a pointer to a duplicated interrupt request. +Otherwise, .Sy NULL is returned to indicate that the request could not be duplicated. .Sh SEE ALSO diff --git a/usr/src/man/man9f/usba_hcdi_dup_isoc_req.9f b/usr/src/man/man9f/usba_hcdi_dup_isoc_req.9f index f8f881aa5b..22951b0e2b 100644 --- a/usr/src/man/man9f/usba_hcdi_dup_isoc_req.9f +++ b/usr/src/man/man9f/usba_hcdi_dup_isoc_req.9f @@ -29,8 +29,8 @@ .Sy Volatile - illumos USB HCD private function .Pp -This is a private function that is not part of the stable DDI. It may be -removed or changed at any time. +This is a private function that is not part of the stable DDI. +It may be removed or changed at any time. .Sh PARAMETERS .Bl -tag -width Fa .It Fa dip @@ -42,11 +42,12 @@ A pointer to the USB isochronous request which will be duplicated. .It Fa flags .Bl -tag -width Sy .It Sy USB_FLAGS_NOSLEEP -Do not block waiting for memory. If memory is not available the allocation -will fail. +Do not block waiting for memory. +If memory is not available the allocation will fail. .It Sy USB_FLAGS_SLEEP -Perform a blocking allocation. If memory is not available, the function -will wait until memory is made available. +Perform a blocking allocation. +If memory is not available, the function will wait until memory is made +available. .Pp Note, the request may still fail even if .Sy USB_FLAGS_SLEEP @@ -62,9 +63,9 @@ function is used to duplicate an existing isochronous request, When the USBA framework initiates an isochronous in transfer with the .Xr usba_hcdi_pipe_isoc_xfer 9E entry point, it is the HCD driver's responsibility to receive the -periodic data from the pipe. When there is data available, the HCD must -duplicate the original isochronous request and copy the available data -into the request structure's +periodic data from the pipe. +When there is data available, the HCD must duplicate the original isochronous +request and copy the available data into the request structure's .Fa isoc_data member, before handing over the request structure to the USBA framework by calling the @@ -72,18 +73,22 @@ by calling the function. .Pp In addition to duplicating the request, it is the callers responsibility -to increase the pipe handle's request count. For more information, see +to increase the pipe handle's request count. +For more information, see .Xr usba_hcdi_pipe_isoc_xfer 9E . .Pp The .Fa dip argument should correspond to the HCD driver's .Sy dev_info_t -structure. The +structure. +The .Fa usrp -pointer should correspond to the initial isochronous request. The +pointer should correspond to the initial isochronous request. +The .Fa flags -member must be appropriate for the context. If +member must be appropriate for the context. +If .Dv USB_FLAGS_SLEEP is passed while in interrupt context, then this function may fail. .Sh CONTEXT diff --git a/usr/src/man/man9f/usba_hcdi_get_device_private.9f b/usr/src/man/man9f/usba_hcdi_get_device_private.9f index 05cf3b8ebe..4649fcb814 100644 --- a/usr/src/man/man9f/usba_hcdi_get_device_private.9f +++ b/usr/src/man/man9f/usba_hcdi_get_device_private.9f @@ -27,8 +27,8 @@ .Sy Volatile - illumos USB HCD private function .Pp -This is a private function that is not part of the stable DDI. It may be -removed or changed at any time. +This is a private function that is not part of the stable DDI. +It may be removed or changed at any time. .Sh PARAMETERS .Bl -tag -width Fa .It Fa usb_device @@ -37,8 +37,8 @@ Pointer to a USB device. .Sh DESCRIPTION The .Fn usba_hcdi_get_device_private -function obtains the private data set by a HCD driver. This private data -is created by the HCD driver's optional entry point +function obtains the private data set by a HCD driver. +This private data is created by the HCD driver's optional entry point .Xr usba_hcdi_device_init 9E and is removed during the HCD driver's optional entry point .Xr usba_hcdi_device_fini 9E . @@ -56,8 +56,8 @@ function is generally called from the context of a .Xr usba_hcdi 9E entry point, but may be called from user, kernel, or interrupt context. .Sh RETURN VALUES -The private data set by an HCD driver is always returned. If no such -value has been set, then +The private data set by an HCD driver is always returned. +If no such value has been set, then .Dv NULL is returned. .Sh SEE ALSO diff --git a/usr/src/man/man9f/usba_hcdi_register.9f b/usr/src/man/man9f/usba_hcdi_register.9f index a2bdbdb97f..45bbba86de 100644 --- a/usr/src/man/man9f/usba_hcdi_register.9f +++ b/usr/src/man/man9f/usba_hcdi_register.9f @@ -33,12 +33,13 @@ .Sy Volatile - illumos USB HCD private function .Pp -This is a private function that is not part of the stable DDI. It may be -removed or changed at any time. +This is a private function that is not part of the stable DDI. +It may be removed or changed at any time. .Sh PARAMETERS .Bl -tag -width Fa .It Fa args -A pointer to a filled out registration structure. See +A pointer to a filled out registration structure. +See .Xr usba_hcdi_register_args_t 9S for the members to fill in. .It Fa flags @@ -61,8 +62,8 @@ The .Fn usba_hcdi_register function is called during a device driver's .Xr attach 9E -entry point after it has finished initializing the device. After this -function successfuly returns, device drivers should assume that the +entry point after it has finished initializing the device. +After this function successfuly returns, device drivers should assume that the .Xr usba_hcdi_ops 9S functions may be called at any time. .Pp @@ -71,7 +72,8 @@ The function should be called during a driver's .Xr detach 9E entry point after it has unbound its root hub, but before the remainder -of the device's state is torn down. After calling the +of the device's state is torn down. +After calling the .Fn usba_hcdi_unregister function, the driver will receive no more function calls to its .Xr usba_hcdi_ops 9S diff --git a/usr/src/man/man9f/usba_hubdi_bind_root_hub.9f b/usr/src/man/man9f/usba_hubdi_bind_root_hub.9f index 03b3b4a1a5..b9106cbb41 100644 --- a/usr/src/man/man9f/usba_hubdi_bind_root_hub.9f +++ b/usr/src/man/man9f/usba_hubdi_bind_root_hub.9f @@ -35,8 +35,8 @@ .Sy Volatile - illumos USB HCD private function .Pp -This is a private function that is not part of the stable DDI. It may be -removed or changed at any time. +This is a private function that is not part of the stable DDI. +It may be removed or changed at any time. .Sh PARAMETERS .Bl -tag -width Fa .It Fa dip @@ -59,7 +59,8 @@ The and .Fn usba_hubdi_unbind_root_hub functions are used to bind and unbind the root USB hub that is a part of -every HCD driver. See +every HCD driver. +See .Xr usba_hcdi 9E for more information on this relationship. .Pp @@ -76,19 +77,19 @@ responsible for making it appear to the system as a normal USB hub. .Pp The contents of the .Fa hub_descr -should be the standard USB Hub class-specific descriptor. This hub -descriptor should match a hub of a similar class of speed. For example, -with the xhci controller, a USB 3.x Hub class-specific descriptor is -used, where as for the ehci controller, a USB 2.x Hub class-specific -descriptor is used. For more information, see the USB 3.1 -specification, section 10.15.2 +should be the standard USB Hub class-specific descriptor. +This hub descriptor should match a hub of a similar class of speed. +For example, with the xhci controller, a USB 3.x Hub class-specific descriptor +is used, where as for the ehci controller, a USB 2.x Hub class-specific +descriptor is used. +For more information, see the USB 3.1 specification, section 10.15.2 .Em Class-specific Descriptors . .Pp Similarly, the contents of the .Fa dev_descr need to be a filled in USB device descriptor that indicates that the -root hub corresponds to the appropriate USB generation. For more -information on the contents, see +root hub corresponds to the appropriate USB generation. +For more information on the contents, see .Xr usb_dev_descr 9S and the USB 3.1 specification, section 10.15.1 .Em Standard Descriptors for Hub Class . @@ -99,7 +100,7 @@ function is used to detach the root hub associated with the HCD driver. This should be called during a device's .Xr detach 9E routine before calling -.Xr usba_hcdi_unregister . +.Xr usba_hcdi_unregister 9F . .Pp If a call to the .Fn usba_hubdi_unbind_root_hub diff --git a/usr/src/man/man9f/usba_hubdi_cb_ops.9f b/usr/src/man/man9f/usba_hubdi_cb_ops.9f index 196874ad8f..01525a8391 100644 --- a/usr/src/man/man9f/usba_hubdi_cb_ops.9f +++ b/usr/src/man/man9f/usba_hubdi_cb_ops.9f @@ -52,8 +52,8 @@ .Sy Volatile - illumos USB HCD private function .Pp -This is a private function that is not part of the stable DDI. It may be -removed or changed at any time. +This is a private function that is not part of the stable DDI. +It may be removed or changed at any time. .Sh PARAMATERS .Bl -tag -width Fa .It Fa dip @@ -74,14 +74,16 @@ The and .Fn usba_hubdi_close functions are functions provided for the implementation of USB HCD -drivers. USB HCD drivers are required to implemnt the +drivers. +USB HCD drivers are required to implemnt the .Xr open 9E , .Xr ioctl 9E , and .Xr close 9E .Xr cb_ops 9S -functions. In each of those functions, they should use the device number -to determine number in +functions. +In each of those functions, they should use the device number to determine +number in .Fa devp or .Fa dev diff --git a/usr/src/man/man9f/usba_hubdi_dev_ops.9f b/usr/src/man/man9f/usba_hubdi_dev_ops.9f index a0a9530e8e..8d85fa9ee7 100644 --- a/usr/src/man/man9f/usba_hubdi_dev_ops.9f +++ b/usr/src/man/man9f/usba_hubdi_dev_ops.9f @@ -15,7 +15,7 @@ .Dt USBA_HCDI_DEV_OPS 9F .Os .Sh NAME -.Nm usba_hubdi_bus_ops +.Nm usba_hubdi_bus_ops , .Nm usba_hubdi_root_hub_power .Nd device operations utility functions for HCD drivers .Sh SYNOPSIS @@ -29,8 +29,8 @@ .Sy Volatile - illumos USB HCD private function .Pp -This is a private function that is not part of the stable DDI. It may be -removed or changed at any time. +This is a private function that is not part of the stable DDI. +It may be removed or changed at any time. .Sh PARAMETERS For the parameters of the .Fn usba_hubdi_root_hub_power @@ -40,14 +40,15 @@ function, see The .Fn usba_hubdi_root_hub_power function is a utility function for the implementation of USB HCD -drivers. USB HCD drivers that support power management, should use set -the +drivers. +USB HCD drivers that support power management, should use set the .Sy devo_power member of their .Xr dev_ops 9S structure to the .Fn usba_hubdi_root_hub_power -function. They should not implement their own +function. +They should not implement their own .Xr power 9E function. .Pp @@ -55,7 +56,8 @@ In addition, drivers should pass the symbol .Sy usba_hubdi_busops as the .Sy devo_bus_ops -member. It contains a properly formatted bus operations structure. +member. +It contains a properly formatted bus operations structure. .Sh CONTEXT This function should not be called directly, it should only be used as a member of a device's diff --git a/usr/src/man/man9f/vmem_alloc.9f b/usr/src/man/man9f/vmem_alloc.9f index 02d74f68e9..07a65b3aab 100644 --- a/usr/src/man/man9f/vmem_alloc.9f +++ b/usr/src/man/man9f/vmem_alloc.9f @@ -65,19 +65,22 @@ There are two meaningful groups of flags. .Dv VM_SLEEP or .Dv VM_NOSLEEP -must be specified, and indicate whether the allocation may block. A +must be specified, and indicate whether the allocation may block. +A .Dv VM_SLEEP allocation can never fail but may block indefinitely. .Pp The allocation policy may be specified by one of the following flags: .Bl -tag -width Ds .It Dv VM_BESTFIT -Take the segment from the smallest free segment that could satisfy this allocation. +Take the segment from the smallest free segment that could satisfy this +allocation. .It Dv VM_FIRSTFIT Take the segment from the first free segment found that could satisfy this allocation. .It Dv VM_NEXTFIT -Take the segment from the segment after the one previously allocated. This +Take the segment from the segment after the one previously allocated. +This provides sequential behaviour useful when allocating identifiers from a .Dv VMC_IDENTIFIER arena. @@ -95,8 +98,8 @@ an approximation of .Dv VM_BESTFIT in guaranteed constant time. .It Fa align_arg -The minimum alignment of the allocation. If 0, -the allocated segment will be aligned as the arena's quantum. +The minimum alignment of the allocation. +If 0, the allocated segment will be aligned as the arena's quantum. .It Fa phase The allocated segment must be .Fa phase @@ -150,8 +153,8 @@ Upon successful completion the .Fn vmem_alloc and .Fn vmem_xalloc -functions return a pointer to the beginning of the allocated segment. In the -case of a +functions return a pointer to the beginning of the allocated segment. +In the case of a .Dv VMC_IDENTIFIER arena, the address of this pointer is the meaningful component, not the value to which it points. diff --git a/usr/src/man/man9f/vmem_create.9f b/usr/src/man/man9f/vmem_create.9f index eb2ae6b37c..17f4ac3d07 100644 --- a/usr/src/man/man9f/vmem_create.9f +++ b/usr/src/man/man9f/vmem_create.9f @@ -67,8 +67,9 @@ The size of the arena to create. .It Fa quantum The arena's .Dq quantum . -The granularity of the arena. The amount allocated at minimum by each -request. Must be a power of 2. +The granularity of the arena. +The amount allocated at minimum by each request. +Must be a power of 2. .It Fa afunc A function which is called to import new spans from .Fa source , @@ -85,7 +86,8 @@ a function taking three parameters and returning a pointer to (the imported space): .Bl -tag -width Ds .It Fa "vmem_t *" -The source arena from which we'll import. The +The source arena from which we'll import. +The .Fa source argument to .Fn vmem_create . @@ -107,7 +109,8 @@ a function taking four parameters and returning a pointer to (the imported space): .Bl -tag -width Ds .It Fa "vmem_t *" -The source arena from which we'll import. The +The source arena from which we'll import. +The .Fa source argument to .Fn vmem_xcreate . @@ -135,7 +138,8 @@ This is a a function taking three parameters and returning void: .Bl -tag -width Ds .It Fa "vmem_t" -The arena to which space is being returned. The +The arena to which space is being returned. +The .Fa source argument to .Fn vmem_create @@ -172,7 +176,8 @@ A .Em vmem arena is a section of an arbitrary address space (a range of integer addresses). This commonly represents virtual memory, but can in fact be an arbitrary set -of integers. The +of integers. +The .Dv VMC_IDENTIFIER flag set at arena creation time differentiates between these two cases. .Pp @@ -201,7 +206,8 @@ Upon successful completion the .Fn vmem_create and .Fn vmem_xcreate -functions return a pointer to a vmem arena. Otherwise, +functions return a pointer to a vmem arena. +Otherwise, .Dv NULL is returned to indicate the arena could not be created. .Sh SEE ALSO |