units(1): Clean up
	Remove unused constant.  Add 'static' where able.
Improve readability of XML generated by CTL_LUN_LIST.
Introduce new IOCTL CTL_PORT_LIST reporting in more flexible XML format.

Leave old CTL_GET_PORT_LIST in place so far.  Garbage-collect it later.
When getting the initial value of numeric tunables use the
getenv_xxx() functions instead of strtoq(), because the getenv_xxx()
functions include wrappers for various postfixes like G/M/K, which
strtoq() doesn't do.
Fix compile-time errors when NO_WERROR and WITHOUT_INET6_SUPPORT
(NO_INET6) are specified.

Approved by:	glebius
MFC after:	1 week
Implement and use ctl_frontend_find().
Improve CTL_BEARG_* flags support, including optional values copyout.
Fix minor copy-paste bug in r268284.
Merge from OpenSolaris (24-Jul-2010):

6679140 asymmetric alloc/dealloc activity can induce dynamic variable drops
6679193 dtrace_dynvar walker produces flood of dtrace_dynhash_sink

This finishes a set of merges from the older OpenSolaris releases.
Still the FreeBSD port has many differences that are difficult to
account for but that seems normal given that the kernels are different.

MFC after:	1 week
Create separate CTL port for every iSCSI target (and maybe portal group).

Having single port for all iSCSI connections makes problematic implementing
some more advanced SCSI functionality in CTL, that require proper ports
enumeration and identification.

This change extends CTL iSCSI API, making ctld daemon to control list of
iSCSI ports in CTL.  When new target is defined in config fine, ctld will
create respective port in CTL.  When target is removed -- port will be
also removed after all active commands through that port properly aborted.
This change require ctld to be rebuilt to match the kernel.

As a minor side effect, this allows to have iSCSI targets without LUNs.
While that may look odd and not very useful, that is not incorrect.
Burry devid port method, which was a gross hack.

Instead allow ports to provide wanted target port and target IDs, and
LUNs provide wanted LUN IDs.  After that core Device ID VPD code only
had to link them together and add relative port and port group numbers.
Make REPORT TARGET PORT GROUPS to return something more sensible.

It requires more formalized LUN mapping to be exactly correct.
Add support for SCSI Ports VPD page.

Ports should also be filtered by LUN mapping.
Do not set port wwnn/wwpn directly, call ctl_port_set_wwns() to update
also target_devid/port_devid respectively.
Change ctl_add_initiator()/ctl_remove_initiator() KPI.

 - Store data in struct ctl_port to make it dynamic;
 - Make ctl_add_initiator() to choose free iid if caller passed < 0;
 - Remove unneeded now pool of iids from iSCSI.
Add support for READ FULL STATUS action of PERSISTENT RESERVE IN.

So far without initiator IDs.
Pass through iSCSI session ISID from LOGIN request to the CTL frontend.

ISID is an important part of initiator transport ID for iSCSI.
Add initiator transport IDs to READ FULL STATUS.

This is a hack. Should be rewritten somehow to store full IDs, but still
not consume 512KB of RAM per target.