summaryrefslogtreecommitdiff
path: root/usr/src/lib
AgeCommit message (Collapse)AuthorFilesLines
2020-07-20 [illumos-gate merge]Jerry Jelinek2-10/+12
commit fa42722764b7b54c64cf742fc1d5d4ab0f02511a 12515 vfalls: array subscript is above array bounds commit 790596015610f2e87846342a497f6ee558379163 12105 libsmbns: passing argument 1 to restrict-qualified parameter aliases with argument 4 commit 93f1cac532b220b8db1e7715dbb2ae7ec5fe8fe7 12933 Update i40e core code to support NVM v1.7
2020-07-1912105 libsmbns: passing argument 1 to restrict-qualified parameter aliases ↵Toomas Soome2-10/+12
with argument 4 Reviewed by: Andy Fiddaman <andy@omniosce.org> Reviewed by: C Fraire <cfraire@me.com> Reviewed by: Matthias Scheler <mscheler@tintri.com> Approved by: Robert Mustacchi <rm@fingolfin.org>
2020-07-13 [illumos-gate merge]Jerry Jelinek190-18281/+78443
commit 2509632a43b285708c172d4221818e8b79cea126 12835 Want support for I350 temperature sensor commit 0e32477cfa6191e10950ae5e101344ad43622930 12834 Rewrite amdbnbtemp to use the ksensor framework commit 026742805847ca4c0c7ca8af50d2ba6a1f4b2b90 12833 Rewrite pchtemp to use the ksensor framework commit 3ce5372277f4657ad0e52d36c979527c4ca22de2 12830 Want centralized ksensor framework 12831 temperature sensors could describe accuracy 12832 topo support for generic PCI device temp sensors commit 5623f66bff7c40c0d22bd5f3cbbb803965de64b9 12894 root zpool with SLOG should be bootable commit 4d9fdb46b215739778ebc12079842c9905586999 12223 Update libdwarf to libdwarf-20200612 commit 4c60ecf710115cd5ae61f6b97dafc7ff963259f4 12942 pkcs11_softtoken pbkdf2 key derivation can crash commit 4cf53d5010eff4a394b33676d54b1311b8e1012e 12882 sun4u/unix: build errors with gcc 7 commit 65a3bc83734e5fb0fc2c19df3e5112b87dcdc3f8 12921 bhyve IPI statistics should not be a matrix commit 3decf16814408c6b0b69d8df1e56e01cd3313a4f 12511 vioblk should preallocate virtio chains commit fe354f7669cae68869feea028566f75f357ae5e7 12923 SMT exclusion should not balk at GZ commit 0207f820281e2416190c7ed5f1cb4d11188c082b 12918 mlxcx "Deadlock: cycle in blocking chain" panic commit 5f0e3176f407dfb9d989b5dcc94a6d5384d0b142 12797 mlxcx max flow table limit can be exceeded 12798 mlxcx command interface should allow concurrent commands and be interrupt driven 12799 mlxcx #if defined for MAC_VLAN_UNTAGGED is redundant 12890 mlxcx uses excessive stack space causing stack overflow panic commit 4e065a9f6a4471f1001853cd10a093bc5beb58a5 12513 SMB 3.1.1 support for server
2020-07-1212830 Want centralized ksensor frameworkRobert Mustacchi5-5/+122
12831 temperature sensors could describe accuracy 12832 topo support for generic PCI device temp sensors Reviewed by: Ryan Zezeski <ryan@zinascii.com> Reviewed by: Toomas Soome <toomas@me.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-07-1112894 root zpool with SLOG should be bootablePatrick Mooney1-7/+0
Reviewed by: Toomas Soome <tsoome@me.com> Reviewed by: Dan McDonald <danmcd@joyent.com> Reviewed by: Andy Fiddaman <andy@omniosce.org> Reviewed by: Andrew Stormont <andyjstormont@gmail.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-07-1012223 Update libdwarf to libdwarf-20200612Robert Mustacchi176-18256/+78210
Reviewed by: Richard Lowe <richlowe@richlowe.net> Approved by: Dan McDonald <danmcd@joyent.com>
2020-07-1012942 pkcs11_softtoken pbkdf2 key derivation can crashJason King1-10/+3
Reviewed by: Robert Mustacchi <rm@fingolfin.org> Approved by: Dan McDonald <danmcd@joyent.com>
2020-07-1012513 SMB 3.1.1 support for serverAlexander Stetsenko7-3/+108
Reviewed by: Matt Barden <mbarden@tintri.com> Reviewed by: Gordon Ross <gordon.w.ross@gmail.com> Approved by: Robert Mustacchi <rm@fingolfin.org>
2020-07-09 [illumos-gate merge]Jerry Jelinek3-2/+13
commit 4a663bac9c5f9f82a5f633bc9639bbee3c2317ff 12904 Update nvme health logpage and temp thresholds commit 480497bc2ff96b447dc09403a6c187a1593ac1ec 12934 sockfs rights test should close unneeded descriptors commit fdb2a7e9480266dfaa0b5aaa0e1237456552f332 12881 sparcv9: add __multi3 commit 7fc77f3f3f63424c569601711f173702dbfd5c45 12927 loader: move zfs_boot_args to bootargs.h commit 1c0fc4547783fdfd7365d5d483e2750915523d44 6089 The comment for svc_callout_find() should be improved commit 66373fa702508a0a41753138f0b10f985c7e058d 12902 epoll should nominally support EPOLLEXCLUSIVE commit 33f84ecfada5880d94e9bfc5af7954d41e5664d5 12924 blkdev needs to be better at handling attach failures
2020-07-0812881 sparcv9: add __multi3Toomas Soome2-1/+6
Reviewed by: Robert Mustacchi <rm@fingolfin.org> Reviewed by: Andrew Stormont <andyjstormont@gmail.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-07-0812902 epoll should nominally support EPOLLEXCLUSIVEPatrick Mooney1-1/+7
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Mike Zeller <mike.zeller@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-07-08 [illumos-gate merge]Jerry Jelinek3-3/+87
commit f4f9009fc79529ef8f45e7a31acd2ce4ca86a276 12912 epoll mishandles excessive timeout negativity commit be9c3adb90f4f745cf5c07f3c0dbdd6c9028cda0 12926 libstand: add missing iscntrl() isgraph() and ispunct() commit 7ac89354c798225fea6296348415955ccd95fb80 12877 Port OpenZFS #7780 - Add basic zfs ioc input nvpair validation 12895 zfs_onexit_fd_hold fails to release non-zfs fds commit 6f0673af8764c356a5bd511fc7ca8af579fe2000 12810 usr/src/tools/opensolaris contents are unused commit 086d96878f5f62a25a6d90e5b03a1ef9ba352231 12909 epoll should better detect fd reassignment Conflicts: usr/src/uts/common/sys/user.h
2020-07-0712912 epoll mishandles excessive timeout negativityPatrick Mooney1-3/+12
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Ryan Zezeski <ryan.zeseski@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-07-0712877 Port OpenZFS #7780 - Add basic zfs ioc input nvpair validationDon Brady3-3/+87
12895 zfs_onexit_fd_hold fails to release non-zfs fds Portions contributed by: Brian Behlendorf <behlendorf1@llnl.gov> Portions contributed by: George Wilson <george.wilson@delphix.com> Portions contributed by: Simon Klinkert <simon.klinkert@gmail.com> Portions contributed by: Jason King <jason.king@joyent.com> Reviewed by: Matthew Ahrens <mahrens@delphix.com> Reviewed by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed by: Toomas Soome <tsoome@me.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-07-0712909 epoll should better detect fd reassignmentPatrick Mooney1-0/+1
Portions contributed by: Bryan Cantrill <bryan@joyent.com> Portions contributed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Reviewed by: Dan McDonald <danmcd@joyent.com> Reviewed by: Jason King <jason.king@joyent.com> Approved by: Robert Mustacchi <rm@fingolfin.org>
2020-07-07 [illumos-gate merge]Jerry Jelinek11-156/+273
commit 87bfe94c15340e9846f25201fa63446ac956d845 12908 epoll should exclude normal files/directories commit 3c2d4f391c2bc4b3b4126c0757329835c80781ed 12907 epoll_ctl can avoid EINTR entirely commit cfcec26617a5b667ad909c32c24594a670c98b2d 12856 pkcs11_softtoken should validate session and object handles
2020-07-0612856 pkcs11_softtoken should validate session and object handlesJason King11-156/+273
Reviewed by: Robert Mustacchi <rm@fingolfin.org> Approved by: Dan McDonald <danmcd@joyent.com>
2020-07-06 [illumos-gate merge]Jerry Jelinek4-31/+52
commit cf7690ebb38fa81bd6f3904ba5ad4649c0ea3c0b 12897 bhyve mevent can mistakenly handle events twice commit 60bd1e6666ad0da8ddf73bbaaca7709c40c560ab 12886 ccid: add sparc build commit 875000d3c627d9be03a7f83a026d1ea45d9680d6 12884 stabs: gcc false positive clobbered warning commit f896265fea0bec895c572a888206977854310034 12883 stabs: variable 'orig' set but not used commit 56f23fa092900d6145428feaadd69e5157186680 12898 ctf enum size detection should use DW_AT_byte_size commit 6ecc470585ed07369dd51b0ed85f5cf848e5b5c2 12867 Mis-programmed pcie bridge leaves 64-bit device unusable 12873 pci_autoconf: Makefile and compiler warning cleanup
2020-07-0212886 ccid: add sparc buildToomas Soome3-1/+42
Reviewed by: Robert Mustacchi <rm@fingolfin.org> Approved by: Dan McDonald <danmcd@joyent.com>
2020-07-0212898 ctf enum size detection should use DW_AT_byte_sizeRobert Mustacchi1-30/+10
Reviewed by: Rich Lowe <richlowe@richlowe.net> Reviewed by: Igor Kozhukhov <igor@dilos.org> Reviewed by: Jason King <jason.brian.king@gmail.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-06-30 [illumos-gate merge]release-20200702Jerry Jelinek1-25/+92
commit 1326c48877254e828afea8c9f7529f6faf1a1fde 12790 locale data install should not attempt to copy missing files commit 5f9772673df89384a3fa8f1cbfcccd8d331f83ff 10854 empty struct array confuses CTF commit 3f764e121447070c490c9637dd5791f8c8823ee4 12604 w needs to use line name instead of pid commit 35060ceaa548c2d6fa63812e06a1a0f8dc4a06b0 12459 iwn: possible unaligned pointer issue
2020-06-2910854 empty struct array confuses CTFJason King1-25/+92
Reviewed by: Andy Fiddaman <omnios@citrus-it.co.uk> Reviewed by: Robert Mustacchi <rm@fingolfin.org> Approved by: Dan McDonald <danmcd@joyent.com>
2020-06-24 [illumos-gate merge]Jerry Jelinek3-3/+43
commit 2ca761b0b92364bea5ec829f3ac6187c20057a0a 12880 sparc: pkglint errors commit e386029b3dc09ced91c6806c9767572be25b584b 12879 sparc: unresolved dependencies commit e156a47b6ebcf79f0515365c32a22c7ed38dc19b 12871 bhyve ioctls needn't the struct size commit b58b977e8fdb738e19dfe72999e4f57a62e9d05f 12869 bhyve kernel/user split should be clearer
2020-06-2312869 bhyve kernel/user split should be clearerPatrick Mooney3-3/+43
Reviewed by: Mike Zeller <mike.zeller@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-06-16 [illumos-gate merge]Jerry Jelinek1-1/+4
commit 989c147e4f8311ee853a577bac8009cc7ffc4a73 12796 pcks11_softtoken C_GetMechanismList() should validate its arguments commit 772852a5d3501d23ca0f77fcdbd7ddb0a25da28b 12546 pcieb: NULL pointer errors commit ae121a1498fc4947aa90fa23f0276b59938ed62e 12571 pcisch: NULL pointer errors
2020-06-1512796 pcks11_softtoken C_GetMechanismList() should validate its argumentsJason King1-1/+4
Reviewed by: Andrew Stormont <andyjstormont@gmail.com> Reviewed by: Sebastian Wiedenroth <wiedi@frubar.net> Reviewed by: Juraj Lutter <juraj@lutter.sk> Approved by: Dan McDonald <danmcd@joyent.com>
2020-06-15 [illumos-gate merge]Jerry Jelinek8-122/+170
commit b30f02def0d29c7f2398666939cf35cf81f809f1 12850 demangle(1) can trip up on names starting with underscore commit 61de0de2b543856b77c5769b0d8981f58a7f26bd 12829 Add Zstandard to /etc/magic commit f2fe7acaed48e65ea8626868085ea6e40a63b3a9 12763 ixgbe ufm support commit a377495feb6d6c6a51d6cca4065a74f320f29a07 12762 topo should create per-device UFM entries by default commit 44b0ba916e529fad7fa22597911db69ae8f24994 12761 i40e should only register ufm data on func 0 commit 8d55b80625b903a8ec6c560f6a38b5c16d1f5cfc 12759 Want ability to read ufm images 12758 ufm_detach doesn't properly clean up 12760 igb ufm support 12765 fwflash plugin cleanup handling is buggy commit 1fa07ac719189ed3e8a0f8170264877c29bff62b 12848 Clarify bhyve's dual license commit 154972aff898a787b38af3bab5b8d754b5a42447 12792 bhyve upstream sync 2020 May commit 440a8a36792bdf9ef51639066aab0b7771ffcab8 12789 increase timers allowed per-process commit 926d645fe2416b8ee611fc8ee4e28b7c7f9744dd 12531 storage: NULL pointer errors Conflicts: usr/src/test/os-tests/tests/Makefile usr/src/test/os-tests/tests/timer/Makefile usr/src/test/os-tests/tests/timer/timer_limit.c usr/src/uts/common/os/timer.c usr/src/uts/common/sys/timer.h usr/src/uts/common/syscall/sysconfig.c
2020-06-1212762 topo should create per-device UFM entries by defaultRobert Mustacchi1-4/+30
Reviewed by: Patrick Mooney <patrick.mooney@joyent.com> Approved by: Joshua Clulow <josh@sysmgr.org>
2020-06-1212792 bhyve upstream sync 2020 MayPatrick Mooney2-20/+45
Reviewed by: Mike Zeller <mike.zeller@joyent.com> Approved by: Robert Mustacchi <rm@fingolfin.org>
2020-06-1212531 storage: NULL pointer errorsToomas Soome5-98/+95
Reviewed by: Patrick Mooney <pmooney@pfmooney.com> Approved by: Robert Mustacchi <rm@fingolfin.org>
2020-06-12 [illumos-gate merge]Jerry Jelinek1-1/+3
commit 7fa359c09493c7b56e7c3e98fccc7e5cc0f09b48 12820 failure in dladm_ether_info() can lead to a double free
2020-06-1112820 failure in dladm_ether_info() can lead to a double freeRobert Mustacchi1-1/+3
Reviewed by: Andy Fiddaman <omnios@citrus-it.co.uk> Reviewed by: Igor Kozhukhov <igor@dilos.org> Reviewed by: Toomas Soome <toomas@me.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-06-09 [illumos-gate merge]Jerry Jelinek20-43/+467
commit b3263c9871d056ea54cca24eaeedd5a41fd333de 12826 update to smatch 0.6.1-rc1-il-6 commit e1fb6a07e9492184a949d5a3ba446ff53b888a2b 12777 libc unwinding confused by indirect pointer encoding commit eda3ef2de2d15b389090f6ef953edaea3daaace4 12689 Want c11 uchar.h commit e214b19eaa16fec1fa60a97227778103f598336f 12577 px: NULL pointer errors
2020-06-0812777 libc unwinding confused by indirect pointer encodingPatrick Mooney1-7/+34
Reviewed by: Robert Mustacchi <rm@fingolfin.org> Reviewed by: Jason King <jason.king@joyent.com> Reviewed by: Andy Fiddaman <omnios@citrus-it.co.uk> Approved by: Dan McDonald <danmcd@joyent.com>
2020-06-0712689 Want c11 uchar.hRobert Mustacchi19-36/+433
Reviewed by: Yuri Pankov <ypankov@tintri.com> Reviewed by: Hans Rosenfeld <rosenfeld@grumpf.hope-2000.org> Reviewed by: Toomas Soome <tsoome@me.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-06-04 [illumos-gate merge]Jerry Jelinek2-16/+5
commit 1bc19844f9d6f3eb43c88648a6862df9de480213 12575 ltc1427: NULL pointer errors commit 89545d90d6724cb5f0b2cc0d34b1e0b21f2c31f1 12564 sbus: NULL pointer and smatch errors commit f7c0877265657617150d9e7010f62fd4554ca9e5 12805 sun_fc: in C++11 this 'throw' will call 'terminate' because destructors default to 'noexcept' commit 01e7b7f0889d1871183449cbcbc41e1f90f40610 12565 max1617: NULL pointer errors
2020-06-0312805 sun_fc: in C++11 this 'throw' will call 'terminate' because ↵Toomas Soome2-16/+5
destructors default to 'noexcept' Reviewed by: Andrew Stormont <andyjstormont@gmail.com> Reviewed by: Vitaliy Gusev <gusev.vitaliy@icloud.com> Reviewed by: Gordon Ross <gordon.w.ross@gmail.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-06-03 [illumos-gate merge]Jerry Jelinek4-31/+101
commit d15d17d4231f87f1571fa6d585377206f360f667 12786 fix CTF pointer overrun commit 8fff788790878e3c95666decd46960ecc74c1c69 12721 would like svcadm disable -c commit 87be0d9605ee884229638b6fd168fa7165e109a3 12813 pptadm and libppt are x86 only commit 069e6b7e31ba5dcbc5441b98af272714d9a5455c 12708 Packages could be linted 12717 Stop ignoring pkgdepend errors commit 605d010da59abaf92279a7caed83515cbb3218dc 7510 enable highres clock usage for non-privileged users Conflicts: usr/src/man/man3c/timer_settime.3c
2020-06-0312721 would like svcadm disable -cJohn Levon3-29/+99
Reviewed by: Jason King <jason.brian.king@gmail.com> Heckling from the gallery by: Joshua M. Clulow <josh@sysmgr.org> Approved by: Dan McDonald <danmcd@joyent.com>
2020-06-0312813 pptadm and libppt are x86 onlyToomas Soome1-2/+2
Reviewed by: Joshua M. Clulow <josh@sysmgr.org> Reviewed by: Patrick Mooney <patrick.mooney@joyent.com> Reviewed by: Jorge Schrauwen <jorge@blackdot.be> Reviewed by: Igor Kozhukhov <igor@dilos.org> Approved by: Dan McDonald <danmcd@joyent.com>
2020-06-02OS-8182 really remove proc_clock_highres privilege from lx zones (#307)John Levon1-2/+1
Reviewed by: Jerry Jelinek <jerry.jelinek@joyent.com> Approved by: Jerry Jelinek <jerry.jelinek@joyent.com>
2020-06-0212775 reorganize bhyve contrib headers [fix broken build]Jerry Jelinek1-2/+2
2020-06-02 [illumos-gate merge]Jerry Jelinek3-5/+5
commit b39b008f8a57ea7ddfd0f69b24529deba7c25ae1 12783 async unlinked drain races with ZFS unmount commit 94bce860c16a04a3d8eaeaa18807723c026e23b5 12559 zs: NULL pointer errors commit fdf1a8710a94b4953ba782ed5bdc1549b0356ddc 12804 sysevent.h: C++11 requires a space between string literal and macro commit e86372a01d2d16a5dd4a64e144ed978ba17fe7dd 12668 ZFS support for vectorized algorithms on x86 (initial support) commit 82049ff560eed6fbdf4cf222d894467f5809f9b3 12119 ndmpd: cast between incompatible function types commit 8e3a263e496f0b896b62a8ebe101c0b2b56c9a15 12750 bhyve should not hold HMA registration with no running VMs commit d0b3c59ba652f183eeec1414dd9fbdc56bf05cc8 12775 reorganize bhyve contrib headers commit e213fe2d75a0e47cc0b3f67c473e24dfa9304e0b 12545 ixgbe: IXGBE_LE32_TO_CPUS macro is missing assignment
2020-06-0112775 reorganize bhyve contrib headersPatrick Mooney3-5/+5
Reviewed by: Rich Lowe <richlowe@richlowe.net> Reviewed by: Andy Fiddaman <omnios@citrus-it.co.uk> Approved by: Robert Mustacchi <rm@fingolfin.org>
2020-05-29 [illumos-gate merge]Jerry Jelinek3-200/+396
commit 60f7064656cca223eac2c6b527d51f6afb62a4ef 12795 Remove remaining bhyveconsole wait code commit 6c24238b6748a460b462c0b48b263cef4a6cbcdd 12709 Support custom URI schemes for the keylocation property
2020-05-2812709 Support custom URI schemes for the keylocation propertyJason King3-200/+396
Portions contributed by: Adam D. Moss <c@yotes.com> Reviewed by: Yuri Pankov <ypankov@fastmail.com> Reviewed by: Toomas Soome <tsoome@me.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-05-26 [illumos-gate merge]Jerry Jelinek8-25/+6
commit b325f34d6fd056178a119182f410f157d35a9ea6 12781 /etc/ppt_aliases needs to be in the boot archive commit 282a8ecb1f4aca0718d89ef1299b5928e5405bca 12736 Add DISCARD/TRIM support to bhyve commit aee33e58f237f0d3cfeab24295f491937f0f7c79 12766 clean up bhyve lints commit 00509c829a7bda32eeabfd272e5e6307ed93079e 12784 Fix errors in plockstat man page commit c376fe93141769de29a07813de2dfb2c8c4b8481 12745 man page typos commit 84659b24a533984de271059abf9a1092835d15a9 12735 bhyve upstream sync 2019 Sept commit cf3ec608f736765ec9852eed5e611848a25de9a4 12768 12392 regressed ftello64 behavior commit 165c5c6fe7d6c7a95878c8a3aae7da65d1da1d90 12774 Resilver restarts unnecessarily when it encounters errors commit 9c3024a3457d2d1269be18124a1ac69e33000da7 12682 want mdb-bhyve module commit 88d6421c15f1c4daea9c8128e715662091258054 12779 mdb str_flags is missing STRXPG4TTY commit 3579e3c35b601b3f66174315be3026281487541a 12776 libbe: missing typedef in libbe.h commit eb9a1df2aeb866bf1de4494433b6d7e5fa07b3ae 12680 want PCI pass-thru in bhyve Conflicts: exception_lists/packaging usr/src/cmd/bhyve/bhyverun.c usr/src/cmd/mdb/i86pc/modules/unix/unix.c usr/src/cmd/pptadm/Makefile usr/src/lib/libppt/Makefile usr/src/lib/libppt/Makefile.com usr/src/lib/libvmm/Makefile usr/src/lib/libvmm/Makefile.com usr/src/uts/i86pc/Makefile.i86pc usr/src/uts/i86pc/io/vmm/vm/vm_page.h usr/src/uts/i86pc/ppt/Makefile usr/src/uts/i86pc/vmm/Makefile usr/src/uts/intel/ia32/ml/modstubs.s
2020-05-2512766 clean up bhyve lintsPatrick Mooney8-44/+5
Reviewed by: Andy Fiddaman <andy@omniosce.org> Approved by: Robert Mustacchi <rm@fingolfin.org>
2020-05-2212768 12392 regressed ftello64 behaviorRobert Mustacchi1-1/+1
Reviewed by: Andy Fiddaman <andy@omniosce.org> Reviewed by: John Levon <john.levon@joyent.com> Reviewed by: Andrew Stormont <andyjstormont@gmail.com> Approved by: Dan McDonald <danmcd@joyent.com>
2020-05-2212682 want mdb-bhyve moduleHans Rosenfeld10-11/+1210
Portions contributed by: Andy Fiddaman <omnios@citrus-it.co.uk> Portions contributed by: John Levon <john.levon@joyent.com> Portions contributed by: Patrick Mooney <patrick.mooney@joyent.com> Reviewed by: John Levon <john.levon@joyent.com> Approved by: Dan McDonald <danmcd@joyent.com>