=============
Usage of the "fdopen()", "close()", "fclose()" APIs is deprecated in libvirt
code base to help avoiding double-closing of files or file descriptors, which
-is particulary dangerous in a multi-threaded applications. Instead of these
+is particularly dangerous in a multi-threaded application. Instead of these
APIs, use the macros from virfile.h
- Open a file from a file descriptor:
])
if test "x$with_avahi" = "xyes" ; then
AC_DEFINE_UNQUOTED([HAVE_AVAHI], 1,
- [whether Avahi is used to broadcast server presense])
+ [whether Avahi is used to broadcast server presence])
fi
fi
AC_SUBST([AVAHI_CFLAGS])
# The minimum limit sets the number of workers to start up
# initially. If the number of active clients exceeds this,
-# then more threads are spawned, upto max_workers limit.
+# then more threads are spawned, up to max_workers limit.
# Typically you'd want max_workers to equal maximum number
# of clients allowed
#min_workers = 5
# at least as large as max_workers. Beyond this, RPC requests
# will be read into memory and queued. This directly impact
# memory usage, currently each request requires 256 KB of
-# memory. So by default upto 5 MB of memory is used
+# memory. So by default up to 5 MB of memory is used
#
# XXX this isn't actually enforced yet, only the per-client
# limit is used so far
/*
* Invoked when a stream is signalled as having data
- * available to read. This reads upto one message
+ * available to read. This reads up to one message
* worth of data, and then queues that for transmission
* to the client.
*
<p> Most kind of object can also be named in various ways:</p>
<ul>
<li>by their <code>name</code>, an user friendly identifier but
- whose unicity cannot be garanteed between two nodes.</li>
+ whose unicity cannot be guaranteed between two nodes.</li>
<li>by their <code>ID</code>, which is a runtime unique identifier
provided by the hypervisor for one given activation of the object,
but it becomes invalid once the resource is deactivated.</li >
<li>by their <code>UUID</code>, a 16 bytes unique identifier
as defined in <a href="http://www.ietf.org/rfc/rfc4122.txt">RFC 4122</a>,
- which is garanteed to be unique for long term usage and across a
+ which is guaranteed to be unique for long term usage and across a
set of nodes.</li>
</ul>
def rebuild(name):
if name not in ["libvirt", "libvirt-qemu"]:
- self.warning("rebuild() failed, unkown module %s") % name
+ self.warning("rebuild() failed, unknown module %s") % name
return None
builder = None
srcdir = os.environ["srcdir"]
A general purpose desktop management tool, able to manage
virtual machines across both local and remotely accessed
hypervisors. It is targeted at home and small office usage
- upto managing 10-20 hosts and their VMs.
+ up to managing 10-20 hosts and their VMs.
</dd>
<dt><a href="http://virt-manager.org/">virt-viewer</a></dt>
<dd>
Bridge chain: POSTROUTING, entries: 1, policy: ACCEPT
-o vnet0 -j libvirt-O-vnet0</pre>
- <p>To keep things managable and easy to follow, the driver will then
+ <p>To keep things manageable and easy to follow, the driver will then
create further sub-chains for each protocol then it needs to match
against:
</p>
<dd>
The optional <code>emulatorpin</code> element specifies which of host
physical CPUs the "emulator", a subset of a domain not including vcpu,
- will be pinned to. If this is ommitted, "emulator" is pinned to all
+ will be pinned to. If this is omitted, "emulator" is pinned to all
the physical CPUs by default. It contains one required attribute
<code>cpuset</code> specifying which physical CPUs to pin to.
</dd>
or:
</p>
<pre>
- git diff > libvirt-myfeature.patch
+ git diff > libvirt-myfeature.patch
</pre>
<p>However, the usual workflow of libvirt developer is:</p>
<pre>
<p>
Usage of the <code>fdopen()</code>, <code>close()</code>, <code>fclose()</code>
APIs is deprecated in libvirt code base to help avoiding double-closing of files
- or file descriptors, which is particulary dangerous in a multi-threaded
- applications. Instead of these APIs, use the macros from virfile.h
+ or file descriptors, which is particularly dangerous in a multi-threaded
+ application. Instead of these APIs, use the macros from virfile.h
</p>
<ul>
<h2><a name="usagePatterns">Lock usage patterns</a></h2>
<p>
- The following psuedo code illustrates the common
+ The following pseudo code illustrates the common
patterns of operations invoked on the lock
manager plugin callbacks.
</p>
</td>
<td> libssh2 </td>
<td>
- Path to the known_hosts file to verify the host key agains. LibSSH2
+ Path to the known_hosts file to verify the host key against. LibSSH2
supports OpenSSH-style known_hosts files, although it does not support
all key types, so using files created by the OpenSSH binary may result
into truncating the known_hosts file. It's recommended to use the default
self.poll.register(self.pipetrick[0], select.POLLIN)
- # Calculate when the next timeout is due to occurr, returning
+ # Calculate when the next timeout is due to occur, returning
# the absolute timestamp for the next timeout, or 0 if there is
# no timeout due
def next_timeout(self):
#
# Due to the coarse granularity of schedular timeslices, if
# we ask for a sleep of 500ms in order to satisfy a timer, we
- # may return upto 1 schedular timeslice early. So even though
+ # may return up to 1 schedular timeslice early. So even though
# our sleep timeout was reached, the registered timer may not
# technically be at its expiry point. This leads to us going
# back around the loop with a crazy 5ms sleep. So when checking
dom = conn.lookupByName(name)
# Annoyiingly, libvirt prints its own error message here
except libvirt.libvirtError:
- print "Domain %s is not runing" % name
+ print "Domain %s is not running" % name
sys.exit(0)
info = dom.info()
* virConnectDomainEventCallback:
* @conn: virConnect connection
* @dom: The domain on which the event occurred
- * @event: The specfic virDomainEventType which occurred
+ * @event: The specific virDomainEventType which occurred
* @detail: event specific detail information
* @opaque: opaque user data
*
*
* The callback will be invoked multiple times,
* fetching data in small chunks. The application
- * should fill the 'data' array with upto 'nbytes'
+ * should fill the 'data' array with up to 'nbytes'
* of data and then return the number actual number
* of bytes. The callback will continue to be
* invoked until it indicates the end of the source
/**
* virDomainEventIOErrorAction:
*
- * The action that is to be taken due to an IO error occuring
+ * The action that is to be taken due to an IO error occurring
*/
typedef enum {
VIR_DOMAIN_EVENT_IO_ERROR_NONE = 0, /* No action, IO error ignored */
int m;
if ((m = virNetDevMacVLanModeTypeFromString(mode)) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR,
- _("Unkown mode '%s' in interface <actual> element"),
+ _("Unknown mode '%s' in interface <actual> element"),
mode);
goto error;
}
int m;
if ((m = virNetDevMacVLanModeTypeFromString(mode)) < 0) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
- _("Unkown mode has been specified"));
+ _("Unknown mode has been specified"));
goto error;
}
def->data.direct.mode = m;
int type)
{
switch (type) {
- /* Wierd, QEMU defaults to 9 MB ??! */
+ /* Weird, QEMU defaults to 9 MB ??! */
case VIR_DOMAIN_VIDEO_TYPE_VGA:
case VIR_DOMAIN_VIDEO_TYPE_CIRRUS:
case VIR_DOMAIN_VIDEO_TYPE_VMVGA:
* virNWFilterDefLoopDetect:
* @conn: pointer to virConnect object
* @nwfilters : the nwfilters to search
- * @def : the filter definiton that may add a loop and is to be tested
+ * @def : the filter definition that may add a loop and is to be tested
*
* Detect a loop introduced through the filters being able to
* reference each other.
/**
* ATTRIBUTE_UNUSED:
*
- * Macro to flag conciously unused parameters to functions
+ * Macro to flag consciously unused parameters to functions
*/
# ifndef ATTRIBUTE_UNUSED
# define ATTRIBUTE_UNUSED __attribute__((__unused__))
*
* This call sets up a stream; subsequent use of stream API is necessary
* to transfer actual data, determine how much data is successfully
- * transfered, and detect any errors.
+ * transferred, and detect any errors.
*
* The screen ID is the sequential number of screen. In case of multiple
* graphics cards, heads are enumerated before devices, e.g. having
* @cb: callback to the function handling domain events
*
* Removes a callback previously registered with the virConnectDomainEventRegister
- * funtion.
+ * function.
*
* Use of this method is no longer recommended. Instead applications
* should try virConnectDomainEventUnregisterAny which has a more flexible
goto err;
}
- /* Information not avaliable */
+ /* Information not available */
spdef->allocation = 0;
spdef->available = 0;
goto cleanup;
}
- /* Information not avaliable */
+ /* Information not available */
pool.allocation = 0;
pool.available = 0;
goto err;
}
- /* Information not avaliable */
+ /* Information not available */
def.allocation = 0;
def.available = 0;
qemuCapsPtr kvmbinCaps = NULL;
int ret = -1;
- /* Check for existance of base emulator, or alternate base
+ /* Check for existence of base emulator, or alternate base
* which can be used with magic cpu choice
*/
binary = qemuCapsFindBinaryForArch(hostarch, guestarch);
size_t len;
virConfValuePtr pp;
- /* Calc lenght and check items */
+ /* Calc length and check items */
for (len = 0, pp = p->list; pp; len++, pp = pp->next) {
if (pp->type != VIR_CONF_STRING) {
VIR_ERROR(_("security_driver be a list of strings"));
if (!needle)
continue;
- /* id is everthing from the beginning of the line to the ':'
+ /* id is everything from the beginning of the line to the ':'
* find ':' and turn it into a terminator */
char *colon = memchr(pos, ':', needle - pos);
if (colon == NULL)
if (virDomainLockProcessStart(h->driver->lockManager,
h->driver->uri,
h->vm,
- /* QEMU is always pased initially */
+ /* QEMU is always paused initially */
true,
&fd) < 0)
goto cleanup;
int rv = fnmatch (*wildcards, identity, 0);
if (rv == 0) {
ret = 1;
- goto cleanup; /* Succesful match */
+ goto cleanup; /* Successful match */
}
if (rv != FNM_NOMATCH) {
virReportError(VIR_ERR_INTERNAL_ERROR,
{
while (*wildcards) {
int ret = fnmatch (*wildcards, dname, 0);
- if (ret == 0) /* Succesful match */
+ if (ret == 0) /* Successful match */
return 1;
if (ret != FNM_NOMATCH) {
virReportError(VIR_ERR_INTERNAL_ERROR,
}
/**
- * Aligns a new partition to nearest cylinder boundry
+ * Aligns a new partition to nearest cylinder boundary
* when having a msdos partition table type
- * to avoid any problem with all ready existing
+ * to avoid any problem with already existing
* partitions
*/
static int
int partType = virStorageBackendDiskPartTypeToCreate(pool);
/* how many extra bytes we have since we allocate
- aligned to the cylinder boundry */
+ aligned to the cylinder boundary */
extraBytes = cylinderSize - (allocation % cylinderSize);
for (i = 0 ; i < dev->nfreeExtent ; i++) {
unsigned long long neededSize = allocation;
if (pool->def->source.format == VIR_STORAGE_POOL_DISK_DOS) {
- /* align to cylinder boundry */
+ /* align to cylinder boundary */
neededSize += extraBytes;
if ((*start % cylinderSize) > extraBytes) {
/* add an extra cylinder if the offset can't fit within
*end = *start + alignedAllocation;
if (pool->def->source.format == VIR_STORAGE_POOL_DISK_DOS) {
- /* adjust our allocation if start is not at a cylinder boundry */
+ /* adjust our allocation if start is not at a cylinder boundary */
*end -= (*start % cylinderSize);
}
if (len >= 0)
break;
if (len != -ERANGE) {
- VIR_WARN("%s", _("A problem occured while listing RBD images"));
+ VIR_WARN("%s", _("A problem occurred while listing RBD images"));
goto cleanup;
}
}
}
} else if (!res || STRPREFIX(res, "pts")) {
/* It can take a while to startup, so retry for
- upto 5 seconds */
+ up to 5 seconds */
/* XXX should do this in a better non-blocking
way somehow ...perhaps register a timer */
if (retries++ < 50) {
/*
* Process /proc/self/cgroup figuring out what cgroup
* sub-path the current process is assigned to. ie not
- * neccessarily in the root
+ * necessarily in the root
*/
static int virCgroupDetectPlacement(virCgroupPtr group)
{
else if (i == 8)
signum = SIGKILL;
else
- signum = 0; /* Just check for existance */
+ signum = 0; /* Just check for existence */
rc = virCgroupKillRecursive(group, signum);
VIR_DEBUG("Iteration %d rc=%d", i, rc);
char priostr[INT_BUFSIZE_BOUND(priority)];
char linestr[INT_BUFSIZE_BOUND(linenr)];
- /* First message takes upto 4 iovecs, and each
+ /* First message takes up to 4 iovecs, and each
* other field needs 3, assuming they don't have
* newlines in them
*/
if (strchr(rawstr, '\n')) {
uint64_t nstr;
- /* If 'str' containes a newline, then we must
+ /* If 'str' contains a newline, then we must
* encode the string length, since we can't
* rely on the newline for the field separator
*/
}
CPU_FREE(mask);
# else
- /* Legacy method uses a fixed size cpu mask, only allows upto 1024 cpus */
+ /* Legacy method uses a fixed size cpu mask, only allows up to 1024 cpus */
cpu_set_t mask;
CPU_ZERO(&mask);
ignore_value(virBitmapSetBit(*map, i));
CPU_FREE(mask);
# else
- /* Legacy method uses a fixed size cpu mask, only allows upto 1024 cpus */
+ /* Legacy method uses a fixed size cpu mask, only allows up to 1024 cpus */
cpu_set_t mask;
CPU_ZERO(&mask);
VIR_DEBUG("Pid file '%s' disappeared: %s",
path, virStrerror(errno, ebuf, sizeof(ebuf)));
VIR_FORCE_CLOSE(fd);
- /* Someone else must be racing with us, so try agin */
+ /* Someone else must be racing with us, so try again */
continue;
}
VIR_DEBUG("Pid file '%s' was recreated", path);
VIR_FORCE_CLOSE(fd);
- /* Someone else must be racing with us, so try agin */
+ /* Someone else must be racing with us, so try again */
}
snprintf(pidstr, sizeof(pidstr), "%lld", (long long) pid);
* virSocketAddrBroadcast:
* @addr: address that needs to be turned into broadcast address (IPv4 only)
* @netmask: the netmask address
- * @broadcast: virSocketAddr to recieve the broadcast address
+ * @broadcast: virSocketAddr to receive the broadcast address
*
* Mask ON the host bits of @addr according to @netmask, turning it
* into a broadcast address.
* virSocketAddrBroadcastByPrefix:
* @addr: address that needs to be turned into broadcast address (IPv4 only)
* @prefix: prefix (# of 1 bits) of netmask to apply
- * @broadcast: virSocketAddr to recieve the broadcast address
+ * @broadcast: virSocketAddr to receive the broadcast address
*
* Mask off the host bits of @addr according to @prefix, turning it
* into a network address.
virDomainEventPtr ev;
/* CURRENT LIMITATION: we never get the VIR_DOMAIN_EVENT_UNDEFINED
- * event becuase the when the machine is de-registered the call
+ * event because the when the machine is de-registered the call
* to vboxDomainLookupByUUID fails and thus we don't get any
* dom pointer which is necessary (null dom pointer doesn't work)
* to show the VIR_DOMAIN_EVENT_UNDEFINED event
* is no 128bit width simple item type for a SafeArray to fit a
* GUID in. The largest simple type it 64bit width and VirtualBox
* uses two of this 64bit items to represents one GUID. Therefore,
- * we devide the size of the SafeArray by two, to compensate for
+ * we divide the size of the SafeArray by two, to compensate for
* this workaround in VirtualBox */
machineIds.count /= 2;
#endif /* VBOX_API_VERSION >= 2002 */
/*
* Caller must hold the lock on 'conn->privateData' before
- * calling this funtion
+ * calling this function
*/
int
xenXMConfigCacheRemoveFile(virConnectPtr conn,
/*
* Caller must hold the lock on 'conn->privateData' before
- * calling this funtion
+ * calling this function
*/
int
xenXMConfigCacheAddFile(virConnectPtr conn, const char *filename)
* once every X seconds
*
* Caller must hold the lock on 'conn->privateData' before
- * calling this funtion
+ * calling this function
*/
int xenXMConfigCacheRefresh (virConnectPtr conn) {
xenUnifiedPrivatePtr priv = conn->privateData;
/* If we already have a matching entry and it is not
modified, then carry on to next one*/
if (xenXMConfigCacheAddFile(conn, path) < 0) {
- /* Ignoring errors, since alot of stuff goes wrong in /etc/xen */
+ /* Ignoring errors, since a lot of stuff goes wrong in /etc/xen */
}
VIR_FREE(path);
/* For Xen >= 3.0.3, don't generate a fixed port mapping
* because it will almost certainly be wrong ! Just leave
* it as -1 which lets caller see that the VNC server isn't
- * present yet. Subsquent dumps of the XML will eventually
+ * present yet. Subsequent dumps of the XML will eventually
* find the port in XenStore once VNC server has started
*/
if (port == -1 && xendConfigVersion < XEND_CONFIG_VERSION_3_0_3)
* This code is done when libvirtd starts up, or before
* a libvirt client connects. The test is ensuring that
* the creation of virNetTLSContextPtr fails if we
- * give bogus certs, or suceeds for good certs
+ * give bogus certs, or succeeds for good certs
*/
static int testTLSContextInit(const void *opaque)
{
scale is provided, then the default is listed in the command (for
historical reasons, some commands default to bytes, while other
commands default to kibibytes). The following case-insensitive
-suffixes can be used to select a specfic scale:
+suffixes can be used to select a specific scale:
b, byte byte 1
KB kilobyte 1,000
k, KiB kibibyte 1,024
missing from the output. Other fields may appear if communicating with a newer
version of libvirtd.
-B<Explanation of fields> (fields appear in the folowing order):
+B<Explanation of fields> (fields appear in the following order):
rd_req - count of read operations
rd_bytes - count of read bytes
wr_req - count of write operations
I<vol-name-or-key-or-path> is the name or key or path of the volume to wipe.
I<--offset> is the position in the storage volume at which to start writing
the data. I<--length> is an upper bound of the amount of data to be uploaded.
-An error will occurr if the I<local-file> is greater than the specified length.
+An error will occur if the I<local-file> is greater than the specified length.
=item B<vol-download> [I<--pool> I<pool-or-uuid>] [I<--offset> I<bytes>]
[I<--length> I<bytes>] I<vol-name-or-key-or-path> I<local-file>
arguments to add <disk> elements to the xml. Each <diskspec> is in the
form B<disk[,snapshot=type][,driver=type][,file=name]>. To include a
literal comma in B<disk> or in B<file=name>, escape it with a second
-comma. A literal I<--diskspec> must preceed each B<diskspec> unless
+comma. A literal I<--diskspec> must precede each B<diskspec> unless
all three of I<domain>, I<name>, and I<description> are also present.
For example, a diskspec of "vda,snapshot=external,file=/path/to,,new"
results in the following XML: