17c478bd9Sstevel@tonic-gate /* 27c478bd9Sstevel@tonic-gate * CDDL HEADER START 37c478bd9Sstevel@tonic-gate * 47c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 57c478bd9Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only 67c478bd9Sstevel@tonic-gate * (the "License"). You may not use this file except in compliance 77c478bd9Sstevel@tonic-gate * with the License. 87c478bd9Sstevel@tonic-gate * 97c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 107c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 117c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 127c478bd9Sstevel@tonic-gate * and limitations under the License. 137c478bd9Sstevel@tonic-gate * 147c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 157c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 167c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 177c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 187c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 197c478bd9Sstevel@tonic-gate * 207c478bd9Sstevel@tonic-gate * CDDL HEADER END 217c478bd9Sstevel@tonic-gate */ 227c478bd9Sstevel@tonic-gate /* 23414388d7Ssl * Copyright 2005 Sun Microsystems, Inc. All rights reserved. 247c478bd9Sstevel@tonic-gate * Use is subject to license terms. 257c478bd9Sstevel@tonic-gate * 267c478bd9Sstevel@tonic-gate * ident "%Z%%M% %I% %E% SMI" 277c478bd9Sstevel@tonic-gate */ 287c478bd9Sstevel@tonic-gate 297c478bd9Sstevel@tonic-gate package com.sun.solaris.service.pools; 307c478bd9Sstevel@tonic-gate 317c478bd9Sstevel@tonic-gate /** 327c478bd9Sstevel@tonic-gate * A thin layer over the libpool(3LIB) interface so that Java can be 337c478bd9Sstevel@tonic-gate * used to manipulate resource pools. For more information on this 347c478bd9Sstevel@tonic-gate * facility refer to the manpage and the developer documentation. 357c478bd9Sstevel@tonic-gate * 367c478bd9Sstevel@tonic-gate * Most of the functionality in this class is not intended to be 377c478bd9Sstevel@tonic-gate * exposed to users of the package. The other classes in the package 387c478bd9Sstevel@tonic-gate * provide appropriate Java abstractions for using this functionality. 397c478bd9Sstevel@tonic-gate * 407c478bd9Sstevel@tonic-gate * Refer to the package documentation and the documentation of the 417c478bd9Sstevel@tonic-gate * other publicly visible classes for more details. 427c478bd9Sstevel@tonic-gate */ 437c478bd9Sstevel@tonic-gate public class PoolInternal { 44*55fea89dSDan Cross static { 45*55fea89dSDan Cross System.loadLibrary("jpool"); PoolInternal.init()467c478bd9Sstevel@tonic-gate PoolInternal.init(); 477c478bd9Sstevel@tonic-gate } 487c478bd9Sstevel@tonic-gate init()497c478bd9Sstevel@tonic-gate final static native void init(); pool_version(long ver)507c478bd9Sstevel@tonic-gate final static native long pool_version(long ver); get_POX_NATIVE()517c478bd9Sstevel@tonic-gate final static native int get_POX_NATIVE(); get_POX_TEXT()527c478bd9Sstevel@tonic-gate final static native int get_POX_TEXT(); get_POC_INVAL()537c478bd9Sstevel@tonic-gate final static native int get_POC_INVAL(); get_POC_UINT()547c478bd9Sstevel@tonic-gate final static native int get_POC_UINT(); get_POC_INT()557c478bd9Sstevel@tonic-gate final static native int get_POC_INT(); get_POC_DOUBLE()567c478bd9Sstevel@tonic-gate final static native int get_POC_DOUBLE(); get_POC_BOOL()577c478bd9Sstevel@tonic-gate final static native int get_POC_BOOL(); get_POC_STRING()587c478bd9Sstevel@tonic-gate final static native int get_POC_STRING(); get_POV_NONE()597c478bd9Sstevel@tonic-gate final static native int get_POV_NONE(); get_POV_LOOSE()607c478bd9Sstevel@tonic-gate final static native int get_POV_LOOSE(); get_POV_STRICT()617c478bd9Sstevel@tonic-gate final static native int get_POV_STRICT(); get_POV_RUNTIME()627c478bd9Sstevel@tonic-gate final static native int get_POV_RUNTIME(); get_POF_INVALID()637c478bd9Sstevel@tonic-gate final static native int get_POF_INVALID(); get_POF_VALID()647c478bd9Sstevel@tonic-gate final static native int get_POF_VALID(); get_POF_DESTROY()657c478bd9Sstevel@tonic-gate final static native int get_POF_DESTROY(); pool_error()667c478bd9Sstevel@tonic-gate public final static native int pool_error(); pool_strerror(int error)677c478bd9Sstevel@tonic-gate public final static native String pool_strerror(int error); pool_strerror_sys()687c478bd9Sstevel@tonic-gate public final static native String pool_strerror_sys(); pool_resource_type_list(long types, long numtypes)697c478bd9Sstevel@tonic-gate public final static native int pool_resource_type_list(long types, 707c478bd9Sstevel@tonic-gate long numtypes); pool_get_status()71414388d7Ssl public final static native int pool_get_status(); pool_set_status(int state)727c478bd9Sstevel@tonic-gate public final static native int pool_set_status(int state); pool_conf_alloc()737c478bd9Sstevel@tonic-gate final static native long pool_conf_alloc(); pool_conf_free(long conf)747c478bd9Sstevel@tonic-gate final static native void pool_conf_free(long conf); pool_conf_status(long conf)757c478bd9Sstevel@tonic-gate final static native int pool_conf_status(long conf); pool_conf_close(long conf)767c478bd9Sstevel@tonic-gate final static native int pool_conf_close(long conf); pool_conf_remove(long conf)777c478bd9Sstevel@tonic-gate final static native int pool_conf_remove(long conf); pool_conf_open(long conf, String location, int oflags)787c478bd9Sstevel@tonic-gate final static native int pool_conf_open(long conf, String location, 797c478bd9Sstevel@tonic-gate int oflags); pool_conf_rollback(long conf)807c478bd9Sstevel@tonic-gate final static native int pool_conf_rollback(long conf); pool_conf_commit(long conf, int active)817c478bd9Sstevel@tonic-gate final static native int pool_conf_commit(long conf, int active); pool_conf_export(long conf, String location, int fmt)827c478bd9Sstevel@tonic-gate final static native int pool_conf_export(long conf, String location, 837c478bd9Sstevel@tonic-gate int fmt); pool_conf_validate(long conf, int level)847c478bd9Sstevel@tonic-gate final static native int pool_conf_validate(long conf, int level); pool_conf_update(long conf)857c478bd9Sstevel@tonic-gate final static native int pool_conf_update(long conf); pool_get_pool(long conf, String name)867c478bd9Sstevel@tonic-gate final static native long pool_get_pool(long conf, String name); pool_query_pools(long conf, java.util.List props)877c478bd9Sstevel@tonic-gate final static native java.util.List pool_query_pools(long conf, 887c478bd9Sstevel@tonic-gate java.util.List props); pool_get_resource(long conf, String type, String name)897c478bd9Sstevel@tonic-gate final static native long pool_get_resource(long conf, String type, 907c478bd9Sstevel@tonic-gate String name); pool_query_resources(long conf, java.util.List props)917c478bd9Sstevel@tonic-gate final static native java.util.List pool_query_resources(long conf, 927c478bd9Sstevel@tonic-gate java.util.List props); pool_query_components(long conf, java.util.List props)937c478bd9Sstevel@tonic-gate final static native java.util.List pool_query_components(long conf, 947c478bd9Sstevel@tonic-gate java.util.List props); pool_conf_location(long conf)957c478bd9Sstevel@tonic-gate final static native String pool_conf_location(long conf); pool_conf_info(long conf, int deep)967c478bd9Sstevel@tonic-gate final static native String pool_conf_info(long conf, int deep); pool_resource_create(long conf, String type, String name)977c478bd9Sstevel@tonic-gate final static native long pool_resource_create(long conf, 987c478bd9Sstevel@tonic-gate String type, String name); pool_resource_destroy(long conf, long res)997c478bd9Sstevel@tonic-gate final static native int pool_resource_destroy(long conf, long res); pool_resource_transfer(long conf, long src, long tgt, long size)1007c478bd9Sstevel@tonic-gate final static native int pool_resource_transfer(long conf, 1017c478bd9Sstevel@tonic-gate long src, long tgt, long size); pool_resource_xtransfer(long conf, long src, long tgt, java.util.List components)1027c478bd9Sstevel@tonic-gate final static native int pool_resource_xtransfer(long conf, 1037c478bd9Sstevel@tonic-gate long src, long tgt, java.util.List components); pool_query_resource_components( long conf, long res, java.util.List props)1047c478bd9Sstevel@tonic-gate final static native java.util.List pool_query_resource_components( 1057c478bd9Sstevel@tonic-gate long conf, long res, java.util.List props); pool_resource_info(long conf, long res, int deep)1067c478bd9Sstevel@tonic-gate final static native String pool_resource_info(long conf, long res, 1077c478bd9Sstevel@tonic-gate int deep); pool_create(long conf, String name)1087c478bd9Sstevel@tonic-gate final static native long pool_create(long conf, String name); pool_destroy(long conf, long pool)1097c478bd9Sstevel@tonic-gate final static native int pool_destroy(long conf, long pool); pool_associate(long conf, long pool, long res)1107c478bd9Sstevel@tonic-gate final static native int pool_associate(long conf, long pool, 1117c478bd9Sstevel@tonic-gate long res); pool_dissociate(long conf, long pool, long res)1127c478bd9Sstevel@tonic-gate final static native int pool_dissociate(long conf, long pool, 1137c478bd9Sstevel@tonic-gate long res); pool_info(long conf, long pool, int deep)1147c478bd9Sstevel@tonic-gate final static native String pool_info(long conf, long pool, int deep); pool_query_pool_resources( long conf, long pool, java.util.List props)1157c478bd9Sstevel@tonic-gate final static native java.util.List pool_query_pool_resources( 1167c478bd9Sstevel@tonic-gate long conf, long pool, java.util.List props); pool_get_owning_resource(long conf, long comp)1177c478bd9Sstevel@tonic-gate final static native long pool_get_owning_resource(long conf, 1187c478bd9Sstevel@tonic-gate long comp); pool_component_info(long conf, long comp, int deep)1197c478bd9Sstevel@tonic-gate final static native String pool_component_info(long conf, 1207c478bd9Sstevel@tonic-gate long comp, int deep); pool_get_property(long conf, long elem, String name, long val)1217c478bd9Sstevel@tonic-gate final static native int pool_get_property(long conf, long elem, 1227c478bd9Sstevel@tonic-gate String name, long val); pool_put_property(long conf, long elem, String name, long val)1237c478bd9Sstevel@tonic-gate final static native int pool_put_property(long conf, long elem, 1247c478bd9Sstevel@tonic-gate String name, long val); pool_rm_property(long conf, long elem, String name)1257c478bd9Sstevel@tonic-gate final static native int pool_rm_property(long conf, long elem, 1267c478bd9Sstevel@tonic-gate String name); pool_walk_properties(long conf, long elem, long user, long callback)1277c478bd9Sstevel@tonic-gate final static native int pool_walk_properties(long conf, long elem, 1287c478bd9Sstevel@tonic-gate long user, long callback); pool_conf_to_elem(long conf)1297c478bd9Sstevel@tonic-gate final static native long pool_conf_to_elem(long conf); pool_to_elem(long conf, long pool)1307c478bd9Sstevel@tonic-gate final static native long pool_to_elem(long conf, long pool); pool_resource_to_elem(long conf, long res)1317c478bd9Sstevel@tonic-gate final static native long pool_resource_to_elem(long conf, long res); pool_component_to_elem(long conf, long comp)1327c478bd9Sstevel@tonic-gate final static native long pool_component_to_elem(long conf, long comp); pool_value_get_uint64(long pv, long result)1337c478bd9Sstevel@tonic-gate final static native int pool_value_get_uint64(long pv, long result); pool_value_get_int64(long pv, long result)1347c478bd9Sstevel@tonic-gate final static native int pool_value_get_int64(long pv, long result); pool_value_get_double(long pv, long result)1357c478bd9Sstevel@tonic-gate final static native int pool_value_get_double(long pv, long result); pool_value_get_bool(long pv, long result)1367c478bd9Sstevel@tonic-gate final static native int pool_value_get_bool(long pv, long result); pool_value_get_string(long pv, long result)1377c478bd9Sstevel@tonic-gate final static native int pool_value_get_string(long pv, long result); pool_value_get_type(long pv)1387c478bd9Sstevel@tonic-gate final static native int pool_value_get_type(long pv); pool_value_set_uint64(long pv, long val)1397c478bd9Sstevel@tonic-gate final static native void pool_value_set_uint64(long pv, long val); pool_value_set_int64(long pv, long val)1407c478bd9Sstevel@tonic-gate final static native void pool_value_set_int64(long pv, long val); pool_value_set_double(long pv, double val)1417c478bd9Sstevel@tonic-gate final static native void pool_value_set_double(long pv, double val); pool_value_set_bool(long pv, short val)1427c478bd9Sstevel@tonic-gate final static native void pool_value_set_bool(long pv, short val); pool_value_set_string(long pv, String val)1437c478bd9Sstevel@tonic-gate final static native int pool_value_set_string(long pv, String val); pool_value_get_name(long pv)1447c478bd9Sstevel@tonic-gate final static native String pool_value_get_name(long pv); pool_value_set_name(long pv, String val)1457c478bd9Sstevel@tonic-gate final static native int pool_value_set_name(long pv, String val); pool_value_alloc()1467c478bd9Sstevel@tonic-gate final static native long pool_value_alloc(); pool_value_free(long pv)1477c478bd9Sstevel@tonic-gate final static native void pool_value_free(long pv); pool_static_location()1487c478bd9Sstevel@tonic-gate public final static native String pool_static_location(); pool_dynamic_location()1497c478bd9Sstevel@tonic-gate public final static native String pool_dynamic_location(); pool_set_binding(String name, int idtype, int id)1507c478bd9Sstevel@tonic-gate public final static native int pool_set_binding(String name, 1517c478bd9Sstevel@tonic-gate int idtype, int id); pool_get_binding(int pid)1527c478bd9Sstevel@tonic-gate public final static native String pool_get_binding(int pid); pool_get_resource_binding( String type, int pid)1537c478bd9Sstevel@tonic-gate public final static native String pool_get_resource_binding( 1547c478bd9Sstevel@tonic-gate String type, int pid); pool_walk_pools(long conf, long user, long callback)1557c478bd9Sstevel@tonic-gate final static native int pool_walk_pools(long conf, long user, 1567c478bd9Sstevel@tonic-gate long callback); pool_walk_resources(long conf, long pool, long user, long callback)1577c478bd9Sstevel@tonic-gate final static native int pool_walk_resources(long conf, long pool, 1587c478bd9Sstevel@tonic-gate long user, long callback); pool_walk_components(long conf, long res, long user, long callback)1597c478bd9Sstevel@tonic-gate final static native int pool_walk_components(long conf, long res, 1607c478bd9Sstevel@tonic-gate long user, long callback); 1617c478bd9Sstevel@tonic-gate /* 1627c478bd9Sstevel@tonic-gate * enums and constants 1637c478bd9Sstevel@tonic-gate */ 1647c478bd9Sstevel@tonic-gate public final static int POOL_VER_CURRENT = 1; 1657c478bd9Sstevel@tonic-gate public final static int POOL_VER_NONE = 0; 1667c478bd9Sstevel@tonic-gate public final static int PO_TRUE = 1; 1677c478bd9Sstevel@tonic-gate public final static int PO_FALSE = 0; 1687c478bd9Sstevel@tonic-gate public final static int PO_SUCCESS = 0; 1697c478bd9Sstevel@tonic-gate public final static int PO_FAIL = -1; 1707c478bd9Sstevel@tonic-gate public final static int POE_OK = 0; 1717c478bd9Sstevel@tonic-gate public final static int POE_BAD_PROP_TYPE = 1; 1727c478bd9Sstevel@tonic-gate public final static int POE_INVALID_CONF = 2; 1737c478bd9Sstevel@tonic-gate public final static int POE_NOTSUP = 3; 1747c478bd9Sstevel@tonic-gate public final static int POE_INVALID_SEARCH = 4; 1757c478bd9Sstevel@tonic-gate public final static int POE_BADPARAM = 5; 1767c478bd9Sstevel@tonic-gate public final static int POE_PUTPROP = 6; 1777c478bd9Sstevel@tonic-gate public final static int POE_DATASTORE = 7; 1787c478bd9Sstevel@tonic-gate public final static int POE_SYSTEM = 8; 1797c478bd9Sstevel@tonic-gate public final static int POE_ACCESS = 9; 1807c478bd9Sstevel@tonic-gate public final static int PO_RDONLY = 0x0; 1817c478bd9Sstevel@tonic-gate public final static int PO_RDWR = 0x1; 1827c478bd9Sstevel@tonic-gate public final static int PO_CREAT = 0x2; 1837c478bd9Sstevel@tonic-gate public final static int PO_DISCO = 0x4; 1847c478bd9Sstevel@tonic-gate public final static int PO_UPDATE = 0x8; 1857c478bd9Sstevel@tonic-gate public final static String POA_IMPORTANCE = "importance based"; 1867c478bd9Sstevel@tonic-gate public final static String POA_SURPLUS_TO_DEFAULT = 1877c478bd9Sstevel@tonic-gate "surplus to default"; 1887c478bd9Sstevel@tonic-gate public final static int POU_SYSTEM = 0x1; 1897c478bd9Sstevel@tonic-gate public final static int POU_POOL = 0x2; 1907c478bd9Sstevel@tonic-gate public final static int POU_PSET = 0x4; 1917c478bd9Sstevel@tonic-gate public final static int POU_CPU = 0x8; 1927c478bd9Sstevel@tonic-gate public final static int POX_NATIVE = get_POX_NATIVE(); 1937c478bd9Sstevel@tonic-gate public final static int POX_TEXT = get_POX_TEXT(); 1947c478bd9Sstevel@tonic-gate public final static int POC_INVAL = get_POC_INVAL(); 1957c478bd9Sstevel@tonic-gate public final static int POC_UINT = get_POC_UINT(); 1967c478bd9Sstevel@tonic-gate public final static int POC_INT = get_POC_INT(); 1977c478bd9Sstevel@tonic-gate public final static int POC_DOUBLE = get_POC_DOUBLE(); 1987c478bd9Sstevel@tonic-gate public final static int POC_BOOL = get_POC_BOOL(); 1997c478bd9Sstevel@tonic-gate public final static int POC_STRING = get_POC_STRING(); 2007c478bd9Sstevel@tonic-gate public final static int POV_NONE = get_POV_NONE(); 2017c478bd9Sstevel@tonic-gate public final static int POV_LOOSE = get_POV_LOOSE(); 2027c478bd9Sstevel@tonic-gate public final static int POV_STRICT = get_POV_STRICT(); 2037c478bd9Sstevel@tonic-gate public final static int POV_RUNTIME = get_POV_RUNTIME(); 2047c478bd9Sstevel@tonic-gate public final static int POF_INVALID = get_POF_INVALID(); 2057c478bd9Sstevel@tonic-gate public final static int POF_VALID = get_POF_VALID(); 2067c478bd9Sstevel@tonic-gate public final static int POF_DESTROY = get_POF_DESTROY(); 2077c478bd9Sstevel@tonic-gate } 208