Go to main content

man pages section 3: Extended Library Functions, Volume 4

Exit Print View

Updated: July 2017



zs_resource, zs_resource_property, zs_resource_type, zs_resource_total_uint64, zs_resource_total_time, zs_resource_used_uint64, zs_resource_used_time, zs_resource_used_pct, zs_resource_used_zone_uint64, zs_resource_used_zone_time, zs_resource_used_zone_pct - libzonestat resource accessor methods


cc [ flag ... ] file... -lzonestat [ libary ... ]
#include <zonestat.h>

zs_property_t zs_resource_property(zs_usage_t usage,
      zs_resource_property_t prop);
zs_resource_type_t zs_resource_type(zs_resource_t resource);
uint64_t zs_resource_total_uint64(zs_usage_t usage,
     zs_resource_t resource);
void zs_resource_total_time(zs_usage_t usage,
     zs_resource_t resource, timestruc_t *ts);
uint64_t zs_resource_used_uint64(zs_usage_t usage,
     zs_resource_t resource, zs_user_t user);
void zs_resource_used_time(zs_usage_t usage, zs_resource_t resource,
     zs_user_t user, timestruc_t *ts);
uint_t zs_resource_used_pct(zs_usage_t usage, zs_resource_t resource,
     zs_user_t user);
uint64_t zs_resource_used_zone_uint64(zs_zone_t zone,
     zs_resource_t resource);
void zs_resource_used_zone_time(zs_zone_t zone, zs_resource_t resource,
     timestruc_t *ts);
uint_t zs_resource_used_zone_pct(zs_zone_t zone, zs_resource_t resource);


These functions are used to access properties and utilization information of the system resources. Also provided by the zs_resource_used_zone_*() functions is per-zone utilization information of each resource.

See libzonestat(3LIB) for the ZS_RESOURCE_* resource codes and the ZS_USER_* user codes.

The zs_resource_property() function returns resource property prop. See libzonestat(3LIB) for a description of the ZS_RESOURCE_PROP_* property codes.

The zs_resource_type() function returns the data type of the resource. The following types can be returned:


The resource and its usage can be retrieved in terms of time. This limit can be passed to zs_resource_total_time() and zs_resource_used_time(), as well as all other zs_resource_*() functions.


The resource reflects a quantity of discrete objects. For instance, a limit on the number of processes.


The resource reflects a quantity of bytes.

The zs_resource_total_uint64() function returns the total resource available of type resource.

The zs_resource_total_time() function sets ts to the total time available for the given resource. This is supported only for the ZS_RESOURCE_CPU resource. The total CPU time represents the total CPU time available since zs_open(3ZONESTAT) was called.

The zs_resource_used_uint64() function returns the total resource used for the given resource by the given user.

The zs_resource_used_time() function sets ts to the total time used for resource by user. This is supported only for the ZS_RESOURCE_CPU resource. The used CPU time represents the CPU time used since zs_open() was called.

The zs_resource_used_pct() function returns the percentage of resource used by user.

The zs_resource_used_zone_uint64() function returns the quantity of resource by zone.

The zs_resource_used_zone_time() function returns the quantity of resource time used by zone. This usage value is increasing from when zs_open() as first called. This function supports only the ZS_RESOURCE_CPU resource.

The zs_resource_used_zone_pct() function returns the percent of resource used by zone.

Return Values

See Description.


If a zs_resource_*() function is called with an invalid resource or user code, the function will abort with abort(3C).


Example 1 Retrieve physical memory.

The following example retrieves physical memory utilization both system-wide and for each zone.

#include <zonestat.h>
extern zs_usage_t usage;        /* assume returned by zs_usage_read() */
zs_zone_t zone;
uint64_t total_memory;
uint64_t used_memory;
uint64_t zone_used_memory;

total_memory = zs_resource_total_uint64(usage, ZS_RESOURCE_RAM);
used_memory = zs_resource_used_uint64(usage, ZS_RESOURCE_RAM, ZS_USER_ALL);

for (zone = zs_zone_first(usage); zone != NULL;
    zone = zs_zone_next(usage, zone)) {

zone_used_memory = zs_resource_used_zone_uint64(zone, ZS_RESOURCE_RAM);


See attributes(5) for descriptions of the following attributes:

Interface Stability

See Also

zonestat(1), pooladm(1M), psrset(1M), rcapadm(1M), swap(1M), zoneadm(1M), zonestatd(1M), abort(3C), libpool(3LIB), libzonestat(3LIB), zs_open(3ZONESTAT), zs_pset(3ZONESTAT), zs_property(3ZONESTAT), zs_pset_zone(3ZONESTAT), zs_usage(3ZONESTAT), zs_zone(3ZONESTAT), attributes(5), resource-controls(5)