docs: Document the exit status of the script.
[virt-what.git] / virt-what.pod
index f2f1a3f..156406e 100644 (file)
@@ -27,9 +27,38 @@ don't know about or cannot detect.
 
 =item B<hyperv>
 
-This is Hyper-V.
+This is Microsoft Hyper-V hypervisor.
 
-Status: from MSDN description, not tested.
+Status: confirmed by RWMJ
+
+=item B<ibm_systemz>
+
+This is an IBM SystemZ (or other S/390) hardware partitioning system.
+Additional facts listed below may also be printed.
+
+=item B<ibm_systemz-direct>
+
+This is Linux running directly on a IBM SystemZ hardware partitioning
+system.
+
+This is expected to be a highly unusual configuration - if
+you see this result you should treat it with suspicion.
+
+Status: not confirmed
+
+=item B<ibm_systemz-lpar>
+
+This is Linux running directly on an LPAR on an IBM SystemZ
+hardware partitioning system.
+
+Status: not confirmed
+
+=item B<ibm_systemz-zvm>
+
+This is a z/VM guest running in an LPAR on an IBM SystemZ
+hardware partitioning system.
+
+Status: confirmed by RWMJ using a Fedora guest running in z/VM
 
 =item B<linux_vserver>
 
@@ -39,7 +68,12 @@ Status: contributed by Barış Metin
 
 =item B<kvm>
 
-This is KVM.
+This guest is running on the KVM hypervisor using hardware
+acceleration.
+
+Note that if the hypervisor is using software acceleration
+you should I<not> see this, but should see the C<qemu> fact
+instead.
 
 Status: confirmed by RWMJ.
 
@@ -50,6 +84,13 @@ container.
 
 Status: contributed by Evgeniy Sokolov
 
+=item B<parallels>
+
+The guest is running inside Parallels Virtual Platform
+(Parallels Desktop, Parallels Server).
+
+Status: contributed by Justin Clift
+
 =item B<powervm_lx86>
 
 The guest is running inside IBM PowerVM Lx86 Linux/x86 emulator.
@@ -58,7 +99,7 @@ Status: data supplied by Jeffrey Scheel, not confirmed
 
 =item B<qemu>
 
-This is QEMU using software emulation.
+This is QEMU hypervisor using software emulation.
 
 Note that for KVM (hardware accelerated) guests you should I<not> see
 this.
@@ -73,7 +114,8 @@ Status: contributed by Laurent Léonard
 
 =item B<virtage>
 
-This is Hitachi Virtualization Manager (HVM) Virtage logical partitioning.
+This is Hitachi Virtualization Manager (HVM) Virtage
+hardware partitioning system.
 
 Status: data supplied by Bhavna Sarathy, not confirmed
 
@@ -91,13 +133,13 @@ Status: not confirmed
 
 =item B<vmware>
 
-The guest appears to be running on VMware.
+The guest appears to be running on VMware hypervisor.
 
 Status: confirmed by RWMJ
 
 =item B<xen>
 
-The guest appears to be running on Xen.
+The guest appears to be running on Xen hypervisor.
 
 Status: confirmed by RWMJ
 
@@ -119,15 +161,23 @@ This is a Xen guest fully virtualized (HVM).
 
 Status: confirmed by RWMJ
 
-=item B<zvm>
+=back
 
-This is a z/VM guest running on an IBM SystemZ mainframe.
+=head1 EXIT STATUS
 
-Status: confirmed by RWMJ using a Fedora guest running in z/VM.  Not
-tested whether this also works for Linux installed directly in an
-LPAR.
+Programs that use or wrap C<virt-what> should check that the exit
+status is 0 before they attempt to parse the output of the command.
 
-=back
+A non-zero exit status indicates some error, for example, an
+unrecognized command line argument.  If the exit status is non-zero
+then the output "facts" (if any were printed) cannot be guaranteed and
+should be ignored.
+
+The exit status does I<not> have anything to do with whether the
+program is running on baremetal or under virtualization, nor with
+whether C<virt-what> managed detection "correctly" (which is basically
+unknowable given the large variety of virtualization systems out there
+and that some systems deliberately emulate others).
 
 =head1 IMPORTANT NOTE