efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * CDDL HEADER START
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * The contents of this file are subject to the terms of the
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * Common Development and Distribution License (the "License").
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * You may not use this file except in compliance with the License.
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * or http://www.opensolaris.org/os/licensing.
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * See the License for the specific language governing permissions
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * and limitations under the License.
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * When distributing Covered Code, include this CDDL HEADER in each
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * If applicable, add the following below this CDDL HEADER, with the
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * fields enclosed by brackets "[]" replaced with your own identifying
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * information: Portions Copyright [yyyy] [name of copyright owner]
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * CDDL HEADER END
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved.
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence/* Per-client handle to libzonestat */
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * These usage structure contains the system's utilization (overall, zones,
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * psets, memory) at a given point in time.
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * The usage set is for computations on multiple usage structures to describe
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * a range of time.
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * The following structures desribe each zone, pset, and each zone's usage
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * of each pset. Each usage structure (above) contains lists of these that
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * can be traversed.
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence * Opaque structure for properties.
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence/* functions for opening/closing a handle for reading current usage */
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence/* function for reading current resource usage */
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence/* functions for manimulating usage data: zs_usage */
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencezs_usage_t *zs_usage_compute(zs_usage_t *, zs_usage_t *, zs_usage_t *, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence/* functions for manipulating sets of usage data: zs_usage_set */
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceint zs_usage_set_add(zs_usage_set_t *, zs_usage_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencezs_usage_t *zs_usage_set_compute(zs_usage_set_t *, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence/* functions for overall system resources: zs_resource */
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_resource_property(zs_usage_t *, int, int, zs_property_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceuint64_t zs_resource_total_uint64(zs_usage_t *, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceuint64_t zs_resource_used_uint64(zs_usage_t *, int, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceuint64_t zs_resource_used_zone_uint64(zs_zone_t *, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_resource_total_time(zs_usage_t *, int, timestruc_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_resource_used_time(zs_usage_t *, int, int, timestruc_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_resource_used_zone_time(zs_zone_t *, int, timestruc_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceuint_t zs_resource_used_pct(zs_usage_t *, int, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceuint_t zs_resource_used_zone_pct(zs_zone_t *, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence/* functions for individual zone usage: zs_zone */
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceint zs_zone_list(zs_usage_t *, zs_zone_t **, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencezs_zone_t *zs_zone_next(zs_usage_t *, zs_zone_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_zone_property(zs_zone_t *, int, zs_property_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceuint64_t zs_zone_limit_uint64(zs_zone_t *, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceuint64_t zs_zone_limit_used_uint64(zs_zone_t *, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_zone_limit_time(zs_zone_t *, int, timestruc_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_zone_limit_used_time(zs_zone_t *, int, timestruc_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceuint_t zs_zone_limit_used_pct(zs_zone_t *, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence/* functions for individual psets: zs_pset_list */
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceint zs_pset_list(zs_usage_t *, zs_pset_t **, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencezs_pset_t *zs_pset_next(zs_usage_t *, zs_pset_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_pset_property(zs_pset_t *, int, zs_property_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_pset_total_time(zs_pset_t *, timestruc_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_pset_used_time(zs_pset_t *, int, timestruc_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence/* functions for a pset's per-zone usage: zs_pset_zone */
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceint zs_pset_zone_list(zs_pset_t *, zs_pset_zone_t **, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencezs_pset_zone_t *zs_pset_zone_first(zs_pset_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencezs_pset_zone_t *zs_pset_zone_next(zs_pset_t *, zs_pset_zone_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencezs_zone_t *zs_pset_zone_get_zone(zs_pset_zone_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencezs_pset_t *zs_pset_zone_get_pset(zs_pset_zone_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_pset_zone_property(zs_pset_zone_t *, int, zs_property_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_pset_zone_used_time(zs_pset_zone_t *, timestruc_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceuint64_t zs_pset_zone_used_cpus(zs_pset_zone_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrenceuint_t zs_pset_zone_used_pct(zs_pset_zone_t *, int);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence/* functions for accessing properties */
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrencevoid zs_property_time(zs_property_t *, timestruc_t *);
efd4c9b63ad77503c101fc6c2ed8ba96c9d52964Steve Lawrence#endif /* _ZONESTAT_H */