ia64/xen-unstable

view tools/xenstat/libxenstat/src/xenstat.h @ 6439:af7251014caf

Formatting fixes for xenstat and xentop.
Signed-off-by: Josh Triplett <josht@us.ibm.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
author cl349@firebug.cl.cam.ac.uk
date Fri Aug 26 08:47:49 2005 +0000 (2005-08-26)
parents 522bc50588ed
children 9404574350ce
line source
1 /* libxenstat: statistics-collection library for Xen
2 * Copyright (C) International Business Machines Corp., 2005
3 * Authors: Josh Triplett <josht@us.ibm.com>
4 * Judy Fischbach <jfisch@us.ibm.com>
5 * David Hendricks <dhendrix@us.ibm.com>
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 */
18 /* libxenstat API */
20 /* Opaque handles */
21 typedef struct xenstat_handle xenstat_handle;
22 typedef struct xenstat_domain xenstat_domain;
23 typedef struct xenstat_node xenstat_node;
24 typedef struct xenstat_vcpu xenstat_vcpu;
25 typedef struct xenstat_network xenstat_network;
27 /* Initialize the xenstat library. Returns a handle to be used with
28 * subsequent calls to the xenstat library, or NULL if an error occurs. */
29 xenstat_handle *xenstat_init();
31 /* Release the handle to libxc, free resources, etc. */
32 void xenstat_uninit(xenstat_handle * handle);
34 /* Get all available information about a node */
35 #define XENSTAT_VCPU 0x1
36 #define XENSTAT_NETWORK 0x2
37 #define XENSTAT_ALL (XENSTAT_VCPU|XENSTAT_NETWORK)
38 xenstat_node *xenstat_get_node(xenstat_handle * handle, unsigned int flags);
40 /* Free the information */
41 void xenstat_free_node(xenstat_node * node);
43 /*
44 * Node functions - extract information from a xenstat_node
45 */
47 /* Get information about the domain with the given domain ID */
48 xenstat_domain *xenstat_node_domain(xenstat_node * node,
49 unsigned int domid);
51 /* Get the domain with the given index; used to loop over all domains. */
52 xenstat_domain *xenstat_node_domain_by_index(xenstat_node * node,
53 unsigned index);
55 /* Get xen version of the node */
56 const char *xenstat_node_xen_ver(xenstat_node * node);
58 /* Get amount of total memory on a node */
59 unsigned long long xenstat_node_tot_mem(xenstat_node * node);
61 /* Get amount of free memory on a node */
62 unsigned long long xenstat_node_free_mem(xenstat_node * node);
64 /* Find the number of domains existing on a node */
65 unsigned int xenstat_node_num_domains(xenstat_node * node);
67 /* Find the number of CPUs existing on a node */
68 unsigned int xenstat_node_num_cpus(xenstat_node * node);
70 /* Get information about the CPU speed */
71 unsigned long long xenstat_node_cpu_hz(xenstat_node * node);
73 /*
74 * Domain functions - extract information from a xenstat_domain
75 */
77 /* Get the domain ID for this domain */
78 unsigned xenstat_domain_id(xenstat_domain * domain);
80 /* Get information about how much CPU time has been used */
81 unsigned long long xenstat_domain_cpu_ns(xenstat_domain * domain);
83 /* Find the number of VCPUs allocated to a domain */
84 unsigned int xenstat_domain_num_vcpus(xenstat_domain * domain);
86 /* Get the VCPU handle to obtain VCPU stats */
87 xenstat_vcpu *xenstat_domain_vcpu(xenstat_domain * domain,
88 unsigned int vcpu);
90 /* Find the current memory reservation for this domain */
91 unsigned long long xenstat_domain_cur_mem(xenstat_domain * domain);
93 /* Find the maximum memory reservation for this domain */
94 unsigned long long xenstat_domain_max_mem(xenstat_domain * domain);
96 /* Find the domain's SSID */
97 unsigned int xenstat_domain_ssid(xenstat_domain * domain);
99 /* Get domain states */
100 unsigned int xenstat_domain_dying(xenstat_domain * domain);
101 unsigned int xenstat_domain_crashed(xenstat_domain * domain);
102 unsigned int xenstat_domain_shutdown(xenstat_domain * domain);
103 unsigned int xenstat_domain_paused(xenstat_domain * domain);
104 unsigned int xenstat_domain_blocked(xenstat_domain * domain);
105 unsigned int xenstat_domain_running(xenstat_domain * domain);
107 /* Get the number of networks for a given domain */
108 unsigned int xenstat_domain_num_networks(xenstat_domain *);
110 /* Get the network handle to obtain network stats */
111 xenstat_network *xenstat_domain_network(xenstat_domain * domain,
112 unsigned int network);
114 /*
115 * VCPU functions - extract information from a xenstat_vcpu
116 */
118 /* Get VCPU usage */
119 unsigned long long xenstat_vcpu_ns(xenstat_vcpu * vcpu);
122 /*
123 * Network functions - extract information from a xenstat_network
124 */
126 /* Get the ID for this network */
127 unsigned int xenstat_network_id(xenstat_network * network);
129 /* Get the number of receive bytes for this network */
130 unsigned long long xenstat_network_rbytes(xenstat_network * network);
132 /* Get the number of receive packets for this network */
133 unsigned long long xenstat_network_rpackets(xenstat_network * network);
135 /* Get the number of receive errors for this network */
136 unsigned long long xenstat_network_rerrs(xenstat_network * network);
138 /* Get the number of receive drops for this network */
139 unsigned long long xenstat_network_rdrop(xenstat_network * network);
141 /* Get the number of transmit bytes for this network */
142 unsigned long long xenstat_network_tbytes(xenstat_network * network);
144 /* Get the number of transmit packets for this network */
145 unsigned long long xenstat_network_tpackets(xenstat_network * network);
147 /* Get the number of transmit errors for this network */
148 unsigned long long xenstat_network_terrs(xenstat_network * network);
150 /* Get the number of transmit drops for this network */
151 unsigned long long xenstat_network_tdrop(xenstat_network * network);